Forum Programmation.autre Cherche un language de script

Posté par  (site web personnel) .
Étiquettes : aucune
0
27
fév.
2005
Je cherche un language de script qui puisse satisfaire a ces critères:
  • Orienté objet
  • Avec une gestion des exceptions. C'est plus pratique
  • Facile de faire des callback dans les méthodes d'une classe
  • Facile de lui donner une bibliothèque écrite en C pour l'utiliser dans le script
  • Sécurisé: on doit pouvoir limiter les fonctionnalités (écriture dans un fichier par exemple). Les scripts seront téléchargés depuis Internet.
Conaissez-vous ce language ?
Le problème avec python c'est au niveau sécurité: rexec est désactivé. PHP n'est pas adapté car concu pour des pages web et pas de gestion des exceptions.
Merci
Mildred

PS: pourquoi ni [p] ni [br /] ni les entitées ne sont autorisées ?
  • # Re:

    Posté par  . Évalué à 3.

    - PHP est très adapté, et même si son but premier est la conception de pages web, il reste parfaitement adapté à beaucoup de situations. On peut par exemple faire du GTK+ en PHP.
    De plus, il me semble bien que la dernière mouture PHP 5 supporte les exceptions.

    - Du shell-scripting. Puissant mais c'est de la bidouille, et je ne pense pas que ça réponde à tes besoind de programmation objet et de sécurité.

    Je ne connais personnellement que ces deux langages de scripts.

    Mais as-tu pensé à Perl ou encore à Tcl ?

    Sinon, je ne t'encouragerai que trop à jeter un coup d'oeil à la puissance d'un langage tel que OCaml, même si ce n'est pas vraiment un langage de script, bien qu'il puisse un peu s'utiliser comme tel.

    Sinon, je pense que la contrainte la plus difficile est la sécurité. Je ne crois pas qu'il existe un langage permettant de supprimer facilement certaines commandes.

    PHP, lui permet de supprimer l'accès à certaines fonctions, parce que c'est justement à la base conçu pour les serveurs web, et donc c'est un minimum sécurisé. Mais ces limitations restent limités à justement la lecture ou l'écriture de fichiers.
    • [^] # Re: Re:

      Posté par  . Évalué à 4.

      PHP n'est pas adapté car concu pour des pages web et pas de gestion des exceptions.

      http://fr2.php.net/manual/fr/language.exceptions.php(...)
      • [^] # Re: Re:

        Posté par  (site web personnel) . Évalué à 1.

        Merci.
        Je vais peut être me réconcilier avec le PHP. Surtout que je connaît très bien ce language.
        Dans mes fonctions par exemple, j'utilise trigger_error() mais pas moyen alors de savoir où la fonction a été appelée.
        Donc re-merci
  • # Et pourtant...

    Posté par  . Évalué à 4.

    Python est la solution la plus appropriée. Le fait que rexec soit désactivé n'est pas le problème, le problème est que rexec est plein de failles et donc qu'il n'est pas sécurisé. En le désactivant on empêche les gens de faire confiance à ce module.

    La solution vers laquelle je tendrais serait une solution système : utilisation d'une prison type chroot, d'un utilisateur sans privilège. Eventuellement tu peux réduire à la main l'utilisation de commande dans le script (avec un peu de parsage par exemple). Si tu veux aller plus loin, il faut voir du côté de l'interpréteur (pourquoi pas jython avec une machine virtuelle bridée ?).

    Même si tu trouves un langage qui offre une solution de "restricted environnement", je te conseille d'avoir une solution système fiable derrière. SI ta solution est stable n'importe quel langage fera l'affaire.

    --
    Thomas
    • [^] # Re: Et pourtant...

      Posté par  . Évalué à 2.

      Je pense qu'on peut sécuriser pas mal python...
      Exemple (dans ipython :)
      In [1]: open = None
      In [2]: fic = open("test.txt")
      ---------------------------------------------------------------------------
      TypeError Traceback (most recent call last)
      /home/suse/<console>
      TypeError: 'NoneType' object is not callable

      Bref, tu peux supprimer l'accès à n'importe quelle fonction !
      Tu peux aussi brider la librairie de modules (sys.path...) et plein d'autres trucs !
      • [^] # Re: Et pourtant...

        Posté par  (site web personnel) . Évalué à 1.

        Oui mais sécuriser python semblait très compliqué ... Si vous avez une doc ca m'aiderait pas mal.
        Mais je vais peut être fouiller un peu plus loin dans cette direction. Surtout que j'aimme bien python, c'est joli, facile a utiliser, orienté objet comme il faut ...
  • # et ruby ?

    Posté par  . Évalué à 5.

    et ruby ?

    http://www.ruby-lang.org/en/(...)


    Ruby has exception handling features, like Java or Python, to make it easy to handle errors.
    Ruby is a complete, full, pure object oriented language: OOL. This means all data in Ruby is an object, in the sense of Smalltalk: no exceptions. Example: In Ruby, the number 1 is an instance of class Fixnum.
    Ruby can load extension libraries dynamically if an OS allows.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.