Forum Programmation.autre language de script en environnement restreint pour mon application

Posté par  (site web personnel) .
Étiquettes : aucune
0
22
mai
2005
Bonsoir,

je cherche un langage de script que je pourrais intégrer dans mon application (a la manière de python dans blender ou javascript dans mozilla).
Et une chose très importante, il doit être possible de restreindre les fonctionnalités gérés par ce langage (pas de lecture/écriture de fichiers partout par exemple) sachant que les scripts son téléchargés d'Internet.

Il semble que javascript soit conçu spécialement pour cela mais est-il possible de le séparer facilement de mozilla ? Et l'intégrer dans une autre application ?

Toute suggestion est la bienvenue.
Merci
  • # Chroot

    Posté par  . Évalué à 3.

    Je ne sais pas trop où tu en es, mais à mon avis, c'est surtout chroot qu'il te faut. Ensuite, n'importe quel langage interprété devrait faire l'affaire.
    • [^] # Re: Chroot

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

      c'est une solution ...
      mais j'aimmerais faire plus simple. Car je projette d'utiliser cela sur d'autres systèmes non unix (windows par exemple. Et je ne pense pas que chroot existe pour windows).
      Ca doit surement exister car je ne pense pas que mozilla fasse un chroot pour executer un script sur les pages web.

      peut être je peux créer le language. Mais ca risque d'être un peu compliqué. Ou plus simplement modifier les languages de programmations existants et faire une lib statique liée (statiquement) à mon programme. Ca doit pouvoir se faire.

      Je ne tiens pas non plus a utiliser un language déja présent sur la machine mais plutot maîtriser la configuration.
      Par exemple, dernièrement j'ai eu un problme avec bittorrent car j'avais un PYTHONPATH qui pointait sur des dossiers python 2.3 et python 2.4 était installé.
  • # Lua ?

    Posté par  . Évalué à 4.

    Tu peux jeter un oeil à Lua, qui est un langage simple principalement pensé pour l'extension d'applications. Maintenant, niveau sécurité, je ne sais pas du tout si qqch est prévu pour contrer les scripts malicieux, faudrait voir dans quelle mesure il est possible de restreindre l'accès aux bibliothèques critiques (IO, etc.).
    • [^] # Re: Lua ?

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

      MERCI BEAUCOUP !!!

      C'est exactement ce dont j'ai besoin.
      The lua_open function creates a new environment (or state). When lua_open creates a fresh environment, this environment contains no predefined functions, not even print.

      En plus le language a l'air sympathique, rapide et assez petit.

      Il ne me reste plus qua recréer la lib de base selon mes besoins. Je crois qu'elle comportera une unique fonction require() qui permettra de charger des nouvelles bibliothèques lua en fonction des autorisations accordées au script.
      • [^] # Re: Lua ?

        Posté par  . Évalué à 2.

        > MERCI BEAUCOUP !!!
        >
        > C'est exactement ce dont j'ai besoin.

        Et bah c'est un peu un coup de bol, parceque j'avais pas regardé en détail, mais content de t'avoir dépanné :)
  • # Lua: environnement restreint

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

    La solution est d'utiliser setfenv().

    A noter: les fonctions héritent de l'environnement dans léquelles eles sont définies. Ainsi, on peut faire une fonction

    renv[import] = function (file)
    if is_executable(file) then
    import(file)
    end
    end

    -- on définit d'autres fonctions dans le tableau renv ... sinon, on ne pourra rien faire

    do
    setfenv(renv)
    -- notre environnement restreint ici
    end

    A noter qu'il existe des fonctions (dofile ? regarder la doc) qui renvoient une fonction qui, lorsqu'executée, execute le fichier.
    Il est alors possible de définir un environnement restreint pour ces fonctions avant de les executer.

Suivre le flux des commentaires

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