PDA

Afficher la version complète : Script de protection contre les attaques de type XSS



Jeb
29/06/2010, 15h59
Bonjour à tous,

Je ne savais pas où créer ce topic, s'il doit être déplacé...

J'ai trouvé par hasard un script de protection contre les attaques de types XSS ou Javascript.
Ce script est à placé sur chaque page de votre forum où il y a un formulaire à remplir.

Voilà le script



<?php
// Script de bloquage d'attaques XSS
function XSS_filter() {
// tips:
// pour vos formulaires, utilisé la même méthode que 'REQUEST_METHOD'
// de cette façon, les formulaire seront aussi vérifiés
$neutralChar = '_';
$forbiddenList = array(0 => "<", 1 => ">");

$listVar = & $GLOBALS[("_" . $_SERVER['REQUEST_METHOD'])];

foreach(array_keys($listVar) as $key){
foreach($forbiddenList as $forbidden){
if(stristr($listVar[$key], $forbidden))
$listVar[$key] = str_replace($forbidden, $neutralChar, $listVar[$key]);
}
}

}
// Fin du Script de bloquage d'attaques XSS
?>

Il y a 2 méthodes pour l'appliquer.
Soit directement sur chaque page tout en haut juste après:

<?php

Soit (toujours sur chaque page) via un fichier qu'on créera et qu'on nommera "xss_filter.php" par exemple et qu'on mettra dans le dossier includes.

require_once("/home/mondomaine/public_html/includes/xss_filter.php");

Penser à mettre un htaccess dans le dossier includes avec ceci comme paramètres:

Order allow,deny
Deny from all

Voilà, en espérant que ça aidera. ;)

Simon
29/06/2010, 16h30
Merci pour le partage :) Dommage qu'il ne soit pas vraiment applicable à vBulletin (trop de modifications à faire).

Ombre
29/06/2010, 17h29
Bonjour, merci pour ce partage, il est vrai que si on doit modifier toutes les pages, ça va pas trop le faire déjà pour la mise en place, mais aussi pour les mises à jour.

Jeb
29/06/2010, 20h15
Oui Ombre, c'est vrai que pour son application, il faudra à chaque fois remettre le bout de code. :)

Neox
10/10/2010, 16h35
dsl de réouvrire un vieux post mais si on le met juste dans l'index.php forum.php et showthread.php

On aura ou moins une petite parti du site sécuriser nan ??

Jeb
18/10/2010, 11h27
Salut,

En fait je conseille d'appliquer cette règle sur toutes les pages où il y a un formulaire (comme précisé sur le 1er post).
Exemple: login.php, sendmessage.php.