Question

Quelle est la meilleure solution pour assainir le code HTML de sortie dans Rails (pour éviter les attaques XSS)?

J'ai deux options: le plug-in white_list ou la méthode sanitize de Sanitize Helper http: //api.rubyonrails.com/classes/ActionView/Helpers/SanitizeHelper.html . Jusqu'à présent, le plugin white_list fonctionnait mieux et auparavant, Sanitize était très bogué, mais en tant que composant du Core, il sera probablement en cours de développement et sera pris en charge pendant un certain temps.

Était-ce utile?

La solution

Je pense que la méthode h helper fonctionnera ici:

<%= h @user.profile %>

Ceci échappera aux chevrons et par conséquent neutraliserait le code JavaScript incorporé. Bien entendu, cela éliminera également toute mise en forme que vos utilisateurs pourraient utiliser.

Si vous souhaitez formater, regardez peut-être Markdown.

Autres conseils

Personnellement, je pense que ce n’est pas une mince décision d’accepter une entrée HTML dans une application Web. Vous pouvez tester les balises blanches / noires autant que vous le souhaitez, mais à moins que vous ne testiez une imbrication correcte, vous pouvez entrer une série de balises de fermeture, par exemple

.
</td></tr></span></div>

et gâchez vraiment votre mise en page.

Je donnais généralement aux gens quelque chose comme Textile pour entrer leur balisage, car je préférais passer mon temps à travailler sur la logique métier que sur l'analyse HTML.

Bien sûr, si cette entrée de texte est plus fondamentale pour votre application (comme par exemple pour stackoverflow), vous devriez probablement accorder plus d’attention à la gestion de votre propre roulement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top