|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Bonjour,
Suite à ce tutoriel PHP secure j'ai activé le safe_mode. Seulement je souhaite pouvoir utiliser la fonction set_time_limit() dans un de mes scripts. Elle est donc désactivée par le safe_mode, mais il est normalement possible d'indiquer un répertoire dans lequel ces fonctions employé par les scripts seront tout de même utilisable. J'ai donc placer dans safe_mode_exec_dir mon répertoire, soit sous Windows: "D:/www/sites/domdom/" Je relance Apache (EasyPHP pour prog.), je lance mon script qui se trouve dans ce dossier, mais le set_time_limit(0) n'est pas pris en compte car je suis stoppé net au bout de 30 secondes. Que faut-il faire ? Ais-je mal fais quelque chose ? Par ailleur, (j'en profite en même temps) sous linux il faudra bien indiquer tel qu'il est dans l'exemple ? (/private_dir/). Et s'il existe d'autres dossiers dans celui indiqué par safe_mode_exec_dir, les fichiers seront également pris en compte ? (dans les sous dossiers) Merci de votre aide. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : février 2006 Messages : 840 ![]() |
Pourquoi ne pas modifier directement la directive max_execution_time dans ton php.ini ?
__________________
Consultant idéaliste. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Parce que sur le serveur où je serais, je n'ai qu'un seul emplacement pour y mettre mon script (cas réel).
Et je n'ai pas la possibilité de modifier la directive max_execution_time. Donc je souhaiterai pouvoir tester avant de le mettre sur le serveur. Si je ne peut faire le test sous Windows en local, je me vois mal faire un "test" sur un serveur en production. N'y a t-il pas de solution sous Windows ? |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
..
J'ai fais tous un tas de tests. .. Personne ne peux m'aider ? |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : février 2006 Messages : 840 ![]() |
Même avec ini_set() ?
__________________
Consultant idéaliste. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
..
Je ne sais pas, je ne m'en suis jamais servit. La syntaxe est-elle bonne: ini_set('max_execution_time',0); Mais si cela venait à fonctionner, ça ne résoudrait pas le problème tout de même. |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
..
... Si ma syntaxe précédente est bonne pour le ini_set cela ne fonctionne pas non plus. |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() |
c'est une mesure de sécurité, donc pas la peine de chercher à la contourner : on ne peut pas.
C'est simple : en "safe_mode" on ne peut pas modifier le "max_execution_time". Mais dans le httpd.conf tu peux sûrement modifier la configuration, via une commande "php_flag" (cf doc PHP). |
|
|
00
|
|
|
#9 | |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Citation:
Pour php_flag, ce n'est pas dans php.ini ? En quoi ça consiste exactement ? |
|
|
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Citation:
Citation:
php_flag set_time_limit on Mais dans ce cas sir je l'ajoute dans le httpd.conf, tous les dossiers (différents sites) pourront la modifier. Or je ne souhaite pas que ce soit le cas. Enfin uniquement pour un dossier que je définirais. |
||
|
|
00
|
|
|
#12 | ||
|
Membre chevronné
![]() |
non, il faudrait plutot mettre :
Code :
et "300" étant le time_limit que tu souhaites pour ton script (il s'agit d'un nombre de secondes... 0 signifiant "illimité", mais je te le déconseille fortement). |
||
|
|
00
|
|
|
#13 | |||
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Citation:
Mais pourquoi me déconseiller cela ? S'il s'agit d'un script dont je ne peux connaître le temps, mais que je maîtrise, je pense qu'il n'y à pas de crainte à avoir ? Je vais tester ce dont tu m'as indiqué. Merci beaucoup. |
|||
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() |
Si jamais le script PHP "boucle" pour une X raison, alors le slot Apache correspondant sera lui aussi "bloqué"... ce qui peut donc avoir un effet très négatif sur les performances de celui ci.
Pour des scripts lancés via Apache, je pense qu'il faut toujours fixer une limite, même "longue" (1 heure par exemple). |
|
|
00
|
|
|
#15 | |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Très bien je te remercie encore.
En revanche j'ai mis cela dans le httpd.conf: Citation:
|
|
|
|
00
|
|
|
#16 |
|
Membre chevronné
![]() |
L'idéal serait de faire un "phpinfo();" afin de voir réellement si la modif a été prise en compte ou non.
A priori ce n'est pas pris en compte, peut-être là encore bloqué par le SAFE_MODE. Je verrais bien une solution : mettre le SAFE_MODE à OFF dans le php.ini, puis mettre php_admin_flag safe_mode on après ton </Directory>. |
|
|
00
|
|
|
#17 | |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Citation:
Ah...je vais faire le test en mettant directory en c: pareil... Apparament ce n'est pas bloqué par le safe_mode: http://fr2.php.net/manual/fr/features.safe-mode.functions.php |
|
|
|
00
|
|
|
#18 | |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Citation:
Ah...je vais faire le test en mettant directory en c: pareil... Apparament ce n'est pas bloqué par le safe_mode: http://fr2.php.net/manual/fr/features.safe-mode.functions.php EDIT: J'ai également essayé avec max_time_execution <Directory /xxxxxxxxx> php_flag max_time_execution 300 </Directory> |
|
|
|
00
|
|
|
#19 | ||
|
Membre du Club
![]() Inscription : avril 2005 Messages : 300 ![]() |
Tu m'as donné la solution, avec quelques modifications minim:
Code :
Mais a vrai dire je n'ai que fais le test (qui fonctionne) mais je ne sais pas ce que représente le php_admin_flag. Vais voir ça dans la doc. Dis moi ce que tu en pense. Merci |
||
|
|
00
|
|
|
#20 |
|
Membre chevronné
![]() |
bah là du coup tu as potentiellement une jolie faille de sécurité... Après c'est toi qui voit.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com