S'identifier - S'inscrire - Ecrire un article - Contact

Filtrage des scripts dans les commentaires

Par stephane • Actualités • Mercredi 13/01/2010 • 7 commentaires  • Lu 2572 fois • Version imprimable

Mots-clés : , ,


J'ai beaucoup renforcé le filtrage des scripts dans les commentaires, afin d'éviter les attaques de type Cross-Site Scripting (XSS) : les petits malins qui trouvent très drôle de mettre du javascript pour faire une blague ou harasser l'auteur du blog, les spammeurs qui planquent des liens, et les éventuels gros méchants qui font du phishing.

Pour l'instant j'ai activé ce nouveau filtre sur le site des utilisateurs seulement, afin d'affiner les réglages. Il y a des dizaines de façons d'activer des scripts, certaines fois en faisant appel à certains bugs de navigateurs, et il est possible de ne pas assez filtrer, comme de trop filtrer.

Je vous laisse utiliser les commentaires de cet article pour tester : les moyens que vous connaissez d'activer des scripts, tout comme les différentes fonctions qui enrichissent les commentaires.

D'autres articles sur des thèmes similaires :


Commentaires

par rap le Jeudi 14/01/2010 à 18:58

rap Ex du pop-up


Defang par Fix le Vendredi 15/01/2010 à 03:32

Fix Très intéressant (j'ai consulté le code de la page donc le code dans ton commentaire pour comprendre ce qui se passe -popup-, ou non, et j'ai vu 'defang_script')

Chez moi (Mac OS 10.6.2, Firefox, Opera, Chrome, dernières versions, pas testé Safari) le pop-up ne s'affiche pas. 

Une petite recherche sur Google amène sur CPAN (la caverne d'Ali-Baba pour les adorateurs du langage Perl, qui est celui utilisé par Stéphane pour programmer Viabloga) :

HTML::Defang - Cleans HTML as well as CSS of scripting and other executable contents, and neutralises XSS attacks.

Est ce module "Defang" qu'a utilisé Stéphane ?  En tout cas il a l'air bien pensé et bien fait, en lisant le code et les explications (râh ! c'est de la poésie pure ! leblase, tu m'entends ?).

Je ne pige pas bien comment, dans le code du commentaire de rap, du javascript ou du html  basiques pourraienit invoquer une routine Perl. Quel est le truc ? Ce serait le "parser" de VB qui en voyant la chaîne defang_script se mettrait à sauter sur sa chaise comme un cabri en chantant 'leblase est un faux et a de beaux pieds' ? Ouate ? On ne m'aurait pas tout dit ? Et si ça marchait, cela voudrait-il dire qu'un appel à Defang pourrait dé-Defanger le schmilblic ? Mais alors (Ouate ! Ouate !) cela voudrait dire que soit Defang est mal conçu (m'étonnerait ... et j'ai pas la patience de lire les dizaines de pages Web qui "testent" Defang), soit, pour un site donné (VdeV) il n'est pas bien paramétré, et ça m'étonnerait encore plus venant de Stéphane.

Ouate ?

A moins que ...vouivoui ... ce soit encore une chierie de IE. Voui ! tite recherche Google encore ...  ==> IE conditional downlevel-revealed comment pour le genre de code utilisé par Rap. Mais ce code n'a pas l'air complet ? (voir : ici, c'est encore de la poésie pour amateurs)

Ouaouate ?

Ah si les lecteurs de blogs VB (VdeV) se mettent (je sais, ils le font déjà. Hélas) à utiliser IE ..  le truc le plus vérolé ... un tout petit moins vérolé dans les versions récentes, m'enfin ...

Ouah ! Ouah ! 



IE conditional downlevel-revealed comment
IE conditional downlevel-revealed commen
 








Re: Defang par Stephane le Vendredi 15/01/2010 à 12:22

Stephane C'est effectivemment HTML::Defang que j'ai utilisé, bravo Inspecteur Fix !

Le code de rap que tu vois dans le source de la page n'est pas celui que rap a envoyé : rap a envoyé un malicieux <!--script ..>, mais je passe un petit coup de defang dessus, et les éléments / attributs dangereux sont préfixés par defang_, et le <!--script ..> devient <!--defang_script ..> :  . Du coup ils deviennent sans danger, puisque plus reconnus et executés par les navigateurs.



par Stephane le Vendredi 15/01/2010 à 19:48

Stephane J'ai changé un truc pour renforcer la sécurité. Si vous voyez un truc bizarre, signalez-les le moi svp.


2eme test par rap le Dimanche 17/01/2010 à 19:27

rap


Re: 2eme test par Stephane le Dimanche 17/01/2010 à 20:18

Stephane Non plus ;-)


OK, passons maintenant à une liste blanche par Fix le Lundi 01/02/2010 à 22:45

Fix  Defang s'attaque hargneusement à tout ce qui dépasse dans les comm' : très bien.

Mais au delà, je re-re-re suggère le concept de "liste blanche". Autrement dit, des scripts qui seraient quelque part dans le modèle (ou appelés par le modèle). Et déclenchés par des "verbes VB". 

Exemple : { { { kdo_pour_leblase } } }.2 signifierait : déclencher le script "kdo pour leblase" avec le paramètre "2".

On voit dans cet exemple que l'utilisateur a la possibilité
• d'utiliser un des scripts d'une "liste blanche". Ils sont documentés, de même que les fameux commandes VB d'affichage des articles etc.
• de NE PAS mettre de langage javascript. Very Cool.

Ces scripts en liste blanche pourraient être utilisés
• dans les articles, textes, blocs, commentaires
• héhéhéhé et dans le modèle lui même ...  (comme des macros).






Session

Pour participer plus facilement, ouvrez une session :

Identifiant de
mon blog
Nom d'utilisateur
Mot de passe

Si vous avez déjà un blog sur ViaBloga ou si vous avez ouvert un compte sur l'un d'entre eux, vous pouvez vous identifier avec votre nom d'utilisateur et mot de passe en précisant d'abord l'identifiant de votre blog.

S'inscrire

Ailleurs sur ViaBloga


Archives par mois