7
votes

Ruby sur rails et prévention des XSS

Quelles sont les pratiques pour prévenir les XSS dans Ruby sur des rails? J'ai trouvé de nombreux vieux documents sur le Web et la plupart du temps consistaient à utiliser h / html_escape assistant pour échapper à toute variable issue d'utilisateurs.

J'ai compris de nouveaux docs que dans la version 2.0 et plus, il y a Sanitize méthode qui nettoie automatiquement l'entrée de soi-disant Entrée malveillante. Est-ce assez ou faites-vous quelque chose de plus pour sécuriser votre Applications?


0 commentaires

4 Réponses :


12
votes

Le Guide de sécurité Ruby On Rails est assez approfondi sur les problèmes spécifiques aux rails que vous devriez devoir Considérez lors de la conception de la sécurité de votre site Web.


0 commentaires

15
votes

La méthode h code> est toujours la voie à suivre pour échapper à tout HTML à l'intérieur d'une chaîne. Vous devez utiliser cette méthode partout où vous émettez du contenu.

<%= sanitize @recipe.description, :tags => %w[b i a], :attributes => %w[href] %>


0 commentaires

4
votes

En ce qui concerne les meilleures pratiques, je recommanderais ce qui suit:

  1. Utilisez toujours les aides de formulaire RAILS (form_for, etc.), si vous écrivez votre propre formulaire, vous ouvrez des attaques CSRF.

  2. en utilisant la fonction H () échappera au texte tel qu'il est écrit sur une page, vous allez toujours vous retrouver avec des exploits XSS enregistrés dans votre base de données. Utilisation de XSSS_TERMINATE Bandes de plugin Entrée tel qu'il est enregistré.

  3. N'oubliez pas que votre application s'exécute sur une pile d'autres applications (rails, Apache, MySQL, votre système d'exploitation de choix), chacun ayant ses propres problèmes de sécurité.


0 commentaires

2
votes

La méthode des rails désinfectant est plutôt bonne, mais elle ne garantit pas bien la formation, et elle est assez susceptible d'être attaquée en raison de la base d'installation. Une meilleure pratique consiste à utiliser HTML5Lib (vraiment le meilleur, sinon le plus rapide ou le plus rubish) ou Sanitize ou LOOFAH


0 commentaires