Sécurité php

Nouveau WRInaute
Bonjour,

Je souhaites donner la possibilité à des utilisateurs de charger leurs propres scripts php sur mon serveur pour pouvoir les exécuter.
Seulement, cela pose un grand problème de sécurité, bien évidemment.
Comment me protéger contre les scripts qui vont toucher à la sécurité du serveur ?
est ce que les fonctions de sécurité présentées ici sont suffisantes pour me protéger ?
 
WRInaute impliqué
Avant la configuration de PHP, c'est à la configuration de ton serveur qu'il faut que tu songes.

Commence par te demander quelles libertés tu veux laisser à tes utilisateurs et tu configures ton serveur en fonction.

Après pour PHP, tu peux configurer open_basedir, disable_functions ... configurer PHP en CGI et activer le SuExec etc ...

Si tu utilises PHP en module Apache, tu peux configurer finement son fonctionnement par domaine dans le httpd.conf.

Le safe mode n'est qu'un paliatif à la configuration du serveur et il apporte autant de problèmes que de solution. C'est à ce point une mauvaise soluion que l'équipe de développement de PHP a décidé de l'abandonner dans la prochaine version de PHP.
 
Nouveau WRInaute
Le problème, c'est que je suis pour le moment en hébergement chez 1&1 (pack premium gratuit 3 ans) et que je n'ai donc pas accès aux config server.
Je suppose que 1and1 a mis en place un certains nombres de mesures de sécurité mais j'aimerais pouvoir en attribuer d'autres.

En fait, je souhaites uniquement que les utilisateurs puissent lancer leurs scripts et uniquement les leurs ; et quand dans ces scripts, ils ne puissent accéder qu'à des variables de sessions que j'aurai défini moi-même, et qu'ils ne puissent pas influencer sur le reste du système.
 
WRInaute impliqué
Si c'est pas indiscret tu peux nous expliquer le pourquoi de ce désidérat ?

Parce que là, à moins que tu veuilles t'attirer des ennuis avec 1and1 je vois pas trop l'utilitée :|
 
WRInaute accro
>> Je souhaites donner la possibilité à des utilisateurs de
>> charger leurs propres scripts php sur mon serveur

surtout pas. au pire donne l'accès à des utilisateurs identifiés dont tu es sur à 100%, et pris qu'ils ne fassent pas de bétises avec leurs scripts, c'est le truc à ne jamais faire :)
 
WRInaute occasionnel
e-kiwi a dit:
>> Je souhaites donner la possibilité à des utilisateurs de
>> charger leurs propres scripts php sur mon serveur

surtout pas. au pire donne l'accès à des utilisateurs identifiés dont tu es sur à 100%, et pris qu'ils ne fassent pas de bétises avec leurs scripts, c'est le truc à ne jamais faire :)

effectivement, je trouve ton idée plutot risquée!
 
Nouveau WRInaute
effectivement, je trouve ton idée plutot risquée!
C'est pour ça que je souhaitais sécuriser le serveur en empêchant pas mal de chose coté php.
Mais je me rend bien compte du danger que cela représente.

Je vais essayer de trouver une autre manière de tourner le problème pour éviter d'avoir à faire ça.

Merci !
 
WRInaute accro
T'imagines pas ! déjà que le moindre petit service rendu à l'internaute est parfois mal exploité par certaines personnes sans scrupules, c'est un risque énorme.
Une faille est vite trouvée...
Même avec des supers précautions, à ta place, je m'inquiéterai...
Tu vas pouvoir dire : "il est interdit de lancer des scripts qui pourraient nuire à autrui ?" et contrôler que c'est respecté ? :roll:

Peux-tu nous détailler grosso modo ton idée et le but de tout ça stp ?, quel genre de script par exemple...
On pourra peut-être mieux te conseiller ? :wink:
 
Nouveau WRInaute
C'est une idée qui me tourne dans la tête depuis un moment. Je préfère ne pas en parler pour le moment.
C'est pas encore très mature, mais je reviendrai vous en parler quand j'aurai trouvé une solution de rechange.
 
WRInaute discret
c'est craignos comme idée de pouvoir telecharger des scripts.

Deja meme certain script sécurisé ca te met en l'air un server, imagine un script non sécurisé !

Perso je te le déconseille.
 
Nouveau WRInaute
Après avoir essayé pas mal de choses, je n'ai rien trouvé de concluant pour mon idée.
Je me pose alors la question :
Si je crée un dictionnaire de mots autorisés (comme if,else,count,for ...), et que j'oblige l'utilisation de variables de la forme $_variable, je dois pouvoir réussir à sécurisé les scripts en ne mettant pas dans le dictionnaire les mots comme exec,opendir,javascript, etc....
Est ce que cette manière de faire peut permettre de sécuriser tout ça ???
 
Nouveau WRInaute
Je pense qu'une fois la ligne de mots suivante interdite, y'a plus grand chose que l'on doit pouvoir faire ...

_GET
_POST
_COOKIE
_REQUEST
_SESSION
_FILES
_ENV
_SERVER
mysql_change_user
mysql_client_encoding
mysql_connect
mysql_create_db
mysql_data_seek
mysql_drop_db
mysql_get_client_info
mysql_get_host_info
mysql_get_proto_info
mysql_get_server_info
mysql_info
mysql_insert_id
mysql_list_dbs
mysql_list_fields
mysql_list_processes
mysql_list_tables
mysql_pconnect
mysql_ping
mysql_query
mysql_select_db
mysql_stat
mysql_tablename
mysql_thread_id
mysql_unbuffered_query
mysql_close
include
include_once
require
require_once
chgrp
chmod
chown
copy
delete
file_exists
file_get_contents
file_put_contents
file
fileatime
filectime
filegroup
fileinode
filemtime
fileowner
fileperms
filesize
filetype
flock
fopen
fpassthru
fstat
glob
is_dir
is_executable
is_file
is_link
is_readable
is_uploaded_file
is_writable
is_writeable
link
linkinfo
lstat
mkdir
move_uploaded_file
pathinfo
popen
readfile
readlink
realpath
rename
rmdir
stat
symlink
tempnam
tmpfile
touch
umask
unlink
session_cache_expire
session_cache_limiter
session_commit
session_decode
session_encode
session_get_cookie_params
session_id
session_is_registered
session_module_name
session_name
session_regenerate_id
session_register
session_save_path
session_set_cookie_params
session_set_save_handler
session_start
session_unregister
session_write_close
system
eval
set_time_limit
ob_implicit_flush
socket_create
socket_bind
socket_accept
socket_read
socket_write
socket_close
print
javascript
header
open
close
read
connect
logon
login
echo
 
WRInaute accro
honnetement, je ne vois pas de solution pour toi, quelque soit la sécurité que tu essayes de mettre, sinon effectivement ils ne pourront plus rien faire :)
 
WRInaute discret
oui... tous sont dangereux d'une centaine façon. Tant qu'on ne saura pas pourquoi tu veux le faire, je pense pas que nous pourrons t'aider.
 
Discussions similaires
Haut