htacces htpasswd autoriser script php serveur

Eléphanteau du PHP | 33 Messages

06 déc. 2012, 00:48

Salut !

Je viens poster ici une petite question histoire d'être sur de ne pas faire une faille de sécurité ... je m'explique :

-> je souhaite bloquer un répertoire (contenant seulement des .txt) par htaccess et htpasswd, pour que le contenu donc ne soit listable dans le navigateur seulement par les utilisateurs définis dans le .htpasswd ...

-> seulement il me faut autoriser l'écriture des .txt par un script php extèrieur à ce dossier, mais sur le même serveur ...

J'ai donc mis un htaccess comme suit, cela fonctionne, mais est-ce que ça n'ouvrirait pas la porte également à des scripts php d'un domaine externe ???
AuthUserFile /xxxxxxxx/www/admjob/paiements/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès Restreint"
AuthType Basic
require valid-user
<Files *.php>
Order deny,allow
</Files>
Merci de votre aide !

ugo

Avatar du membre
Mammouth du PHP | 1609 Messages

06 déc. 2012, 19:42

Salut, qu'entends tu par script php d'un domaine externe ? si c'est sur un autre serveur, je dirai clairement non. Sauf erreur de ma part, je ne crois pas qu'on puisse supprimer ou modifier un fichier via protocole http.
Ensuite pour minimiser le risque utilise un CHMOD 775. Pour le reste, je dirai que ça dépend de la configuration du serveur. Théoriquement en 775 seul ton user FTP et le user du serveur web pourront modifier le fichier.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 33 Messages

06 déc. 2012, 19:53

ok merci de la réponse !

et dans la même lignée, quoi mettre comme chmod sur un script php, pour qu'il ne puisse pas être lancé via le navigateur par un internaute, mais seulement par ... Paypal en l'occurence ! ...

Avatar du membre
Mammouth du PHP | 1609 Messages

06 déc. 2012, 20:49

Tu ne peux pas faire ce genre de chose par CHMOD. Quand PayPal appelle la page c'est par protocole http tout comme avec le navigateur donc le serveur web doit avoir les droits d'exécution du fichier.

Si tu veux bloquer à PayPal uniquement, il faut plutôt t'orienter sur un filtrage par ip ou nom de domaine via .htaccess.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 33 Messages

06 déc. 2012, 20:55

ok !

je ne sais pas comment mettre en résolu !

Avatar du membre
Mammouth du PHP | 1609 Messages

06 déc. 2012, 21:08

Développeur web depuis + de 20 ans

Eléphanteau du PHP | 33 Messages

06 déc. 2012, 21:14

Sur chaque intervention d'un sujet, dans la partie supérieure droite, vous disposez de l'un de ces 2 icônes : ('V' rouge ou vert)
Le clic sur l'icône verte permet de choisir l'intervention comme étant la meilleure réponse, et donc de marquer le sujet comme étant résolu.

désolé mais il n'y a pas ces icones chez moi !

Avatar du membre
Mammouth du PHP | 1609 Messages

06 déc. 2012, 21:16

lol ok, ça a du changer depuis la rédaction du message alors. ^^
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 33 Messages

06 déc. 2012, 21:23

et je ne peux pas éditer le titre de mon 1er message ...

mais en fait c'est partiellement résolu ... je n'ai pas cherché quoi mettre comme directive de filtrage pour Paypal ...

Mon formulaire de paiement envoie à https://www.paypal.com/cgi-bin/webscr
Mais je ne sais pas quelle url me répond ! ... ni comment l'identifier ...

Avatar du membre
Mammouth du PHP | 1609 Messages

06 déc. 2012, 21:48

En effet. En fait il me semble que le système d'IPN de PayPal permet de faire une requête de vérification en appelant un script sur les serveurs de PayPal permettant de vérifier une signature transmis à ton script lors de son appel. Un hacker ne peut donc pas tromper ton script si tu fais ce test (peut être même est-il obligatoire mais je ne crois pas).

EDIT et je dirai même qu'il vaut mieux faire comme ça car l'ip ou le nom de domaine pourraient changer du jour au lendemain.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 33 Messages

06 déc. 2012, 21:56

tout à fait ... mais il se trouve qu'en cas d'erreur quelconque, je souhaitais créer des fichiers logs ...
or en appelant ce script de validationPaiement directement dans le navigateur par n'importe qui, ça aurait généré multitudes de fichiers log erreurs, et très vite saturé le serveur.
J'ai donc abandonné l'idée de traiter les erreurs inconnues, seules les erreurs propres à l'ipn de paypal ...
J'ai pas trouvé mieux comme solution !

Avatar du membre
Mammouth du PHP | 1609 Messages

06 déc. 2012, 22:00

Une fois que tu seras en situation réelle, tu pourras trouver l'ip du seveur PayPal dans le log d'accès du serveur (apache ?) quand l'ipn aura été appelé.
Tu pourras donc rajouter une condition sur l'adresse ip pour l'écriture des logs.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 33 Messages

06 déc. 2012, 22:08

je suis déjà en situation réelle ... les logs seront accessibles demain je crois ...

je pense que je trouverais ça par là, mais as-tu une idée de ce à quoi ressemblerait la restriction dans le .htaccess ?

Avatar du membre
Mammouth du PHP | 1609 Messages

06 déc. 2012, 22:23

En faisant du denie,allow avec du allow from ip. Mais à ta place je ne le ferai pas ! :p
Développeur web depuis + de 20 ans