|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre actif
![]() christian Développeur indépendant Inscription : août 2004 Messages : 251 ![]() |
contexte: je voudrais pouvoir donner aux utilisateurs la possibilité de mettre leurs propres scripts php, stockés dans une base de données et evalués quand on en a besoin, donc executés.
l'optique est de pouvoir programmer des operations simple, texte ou calcul à la demande en autorisant ou interdisant un script selon les token qu'il contient. probleme, quand le script est fait par le webmaster, on peut l'evaluer, même si au depart, je suis pas trés chaud pour l'eval.ca me fait toujours peur au niveau de la securité. donc, je voudrais pouvoir autoriser seulement une partie des operations du PHP. pour ce faire, j'ai déja regardé vers token_get_all() pour parser le source. maintenant, à partir de ca, je voudrais pouvoir verifier la presence ou non de token ou de fonctions interdites.(à définir) ou plutot valider les seules fonctions autorisées. pour ce faire, je suis deja arrive au decoupage des token à partir d'une source. Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : juin 2004 Messages : 747 ![]() |
Tu peux essayer de jouer avec les propriétés de php.ini avec ini_set() :
A voir si tu peux interdire l'utilisation de la fonction ini_set() elle-même... Mais chaud ton truc. Débrouille toi aussi pour rendre indisponible toute connexion à ta BDD dans le script qui exécute le code stocké...
__________________
|
|
01
|
|
|
#3 |
|
Membre actif
![]() christian Développeur indépendant Inscription : août 2004 Messages : 251 ![]() |
sauf que dans le cas actuel, je peux pas limiter l'execution du service php lui meme, car il abrite le reste de mon code actif, session, etc..
c'est justement pour ca que je veux 'filtrer' et valider/interdire le code qui pourrait etre evalué. mais, je suis en train de voir pour faire cette validation à l'enregistrement, de facon à verifier la presence de strings comme par exemple mysql_connect, eval, ou autres joyeusetes telles que la modification des variables php ou de sessions.. et faire la liste des strings interdits en fait.. sinon, si je veux realiser un systeme de scripts definissables par l'utilisateur, je serais obligé de sortir l'artillerie lourde, flex et yacc.. ca m'emmerderais un peu soit dit en passant, mais s'il le faut vraiment, je le ferais.. mais avant, comme je suis un feneant intelligent |
|
|
00
|
|
|
#4 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Une solution élégante, en plus de ton système de restriction, serait peut être de construire des scripts php temporaires, exécutés séparément du site lui-même et donc l'output produit, récupérés sous forme de chaine de caractères serait renvoyé à l'utilisateur final. Cela permettrait d'isoler le code et d'éviter les débordements. Mais en aucun cas cela ne sécuriserait totalement la plateforme. Pour moi, ce que tu cherches à faire est vraiment la dernière des choses à faire. Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#5 |
|
Membre actif
![]() christian Développeur indépendant Inscription : août 2004 Messages : 251 ![]() |
oui, ca parait evident qu'il faudrait redefinir un langage..
mais flex et yacc me font un peu peur vu que j'ai jamais eu de cours la dessus, comme de cours en infos dignes de ce nom d'ailleurs.. donc quelques manques qui me genent.. et me font craindre le pire concernant l'investissement en temps necessaire pour arriver à sortir quelque chose de fonctionnel.. si tu me disais que quelqu'un a fait quelque chose d'approchant, ca m'aiderait beaucoup, et avec un lien qui marche, ca serait top.. |
|
|
00
|
|
|
#6 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Enfin un langage tout bête du style de brainfuck s'implémente en 2 heures Citation:
-- EDIT Ah bah justement je croyais pas si bien dire: http://pecl.php.net/package/lua Lua est à l'origine un langage de script léger et (très) performant destiné à être intégré dans une application plus importante. Il est très utilisé dans le jeu vidéo (pour la console par exemple) notament dans WoW. C'est, je pense, la solution à ton problème.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#8 |
|
Membre actif
![]() christian Développeur indépendant Inscription : août 2004 Messages : 251 ![]() |
soit les liens sont antediluviens et ne marchent plus, genre de 2008 et plus rien, (deja ) ne marche ou c'etait du bricolage, ou alors, à l'inverse, on s'apercoit que apache va inclure un mod_lua mais que lui n'est pas encore mure.
donc, for this time, wait and see. l'idée est tres plaisante, mais finalement, ca demande beaucoup, beaucoup trop de boulot tout seul pour un resultat non garanti, et une stabilité aleatoire pour le moment. de plus, si on laisse ce genre de choses à l'utilisateur, il va croire qu'il peut se passer de l'administrateur.. donc, on va ecrire et administrer des scripts.. voila, ca paiera les factures.. |
|
|
00
|
|
|
#9 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Sinon tu peux toujours mettre l'interprêteur Lua sur ton serveur et l'appeller avec exec (ou créer ta propre PECL si tu sais faire).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com