Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/10/2011, 12h28   #1
Candidat au titre de Membre du Club
 
Homme Cyril Tonneville
Développeur Web
Inscription : janvier 2009
Messages : 38
Détails du profil
Informations personnelles :
Nom : Homme Cyril Tonneville
Âge : 30
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2009
Messages : 38
Points : 14
Points : 14
Envoyer un message via MSN à Lanfear Envoyer un message via Yahoo à Lanfear
Par défaut Réécrire des urls contenant <script

Bonjour,
Je dois sécurisé un site dont j'ai repris la maintenance et je dois donc m'attaquer au problème de "cross-site scripting".
Le site étant un peu vieux (codé en PHP4) et mal organisé mais n'ayant pas pour but de le refaire entièrement, je voulais regarder coté Apache pour gérer ce problème.

En gros, je voudrais que lorsque je detecte la chaine "<script" dans une url (chaine qui serait passait en POST dans un champ de formulaire), celle-ci soit encodé pour ne pas être interprété sur le site.

Code :
1
2
'>"><_script_>_alert(document.cookie)_</_script_>
==> SANS LES _ (je ne peux pas poster le message si je les enlève) :aie:
Exemple, actuellement si dans un champ de formulaire je mets la chaine précédente, la page résultat me retourne dans un jolie pop-up les informations de cookie de la page.

J'ai essayé par un .htaccess mais sans résultat:
Code :
1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?script(.*)$ [NC]
RewriteRule (.*) - [F]
Lanfear est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 13h06   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 295
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 295
Points : 8 575
Points : 8 575
En POST, il n'y a aucun paramètre d'URL donc la query string est vide, donc la RewriteCond qui travaille sur %{QUERY_STRING} échoue.

Il faut gérer ça côté code PHP, c'est le plus sûr.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 13h50   #3
Candidat au titre de Membre du Club
 
Homme Cyril Tonneville
Développeur Web
Inscription : janvier 2009
Messages : 38
Détails du profil
Informations personnelles :
Nom : Homme Cyril Tonneville
Âge : 30
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2009
Messages : 38
Points : 14
Points : 14
Envoyer un message via MSN à Lanfear Envoyer un message via Yahoo à Lanfear
arf exact!!

Comment comprendre (et utiliser) RewriteCond %{REQUEST_METHOD} (GET|POST) alors ?
Lanfear est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 14h33   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 295
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 295
Points : 8 575
Points : 8 575
Ca veut dire "si la méthode de la requête est GET ou POST". Ca n'empêche pas que les paramètres ne sont pas accessibles via %{QUERY_STRING} avec une requête POST, et il n'y a pas de moyen standard pour qu'Apache aille chercher le corps d'une requête POST. Donc la seule solution c'est de faire un échappement dans le code PHP.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 16h35   #5
Candidat au titre de Membre du Club
 
Homme Cyril Tonneville
Développeur Web
Inscription : janvier 2009
Messages : 38
Détails du profil
Informations personnelles :
Nom : Homme Cyril Tonneville
Âge : 30
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2009
Messages : 38
Points : 14
Points : 14
Envoyer un message via MSN à Lanfear Envoyer un message via Yahoo à Lanfear
OK, merci pour la précision.

Je vais passer sur toutes les pages à la main
Lanfear est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h57.


 
 
 
 
Partenaires

Hébergement Web