2010-11-18 32 views
0

J'ai créé une application qui permet aux utilisateurs d'entrer beaucoup de données différentes (messages, commentaires, etc.). Le format simple est bon pour moi maintenant je veux juste protéger contre les trucs fous. Je n'ai pas utilisé d'aseptisation avant et après avoir lu quelques guides, je suis encore un peu confus sur la façon de mettre en œuvre. En espérant que je puisse avoir une direction ici.Implémentation de sanitize simple_format dans les rails 2.3.8

Disons que je collectionne @ post.body. Comment puis-je supprimer les balises <div ou les balises <script> que l'utilisateur peut saisir? Je suppose que dans la vue, il ressemblerait à quelque chose comme ceci:

<%= sanatize(simple_format @post.body) %> 

... mais où dois-je définir ce que les étiquettes ne sont pas autorisés? Dans le modèle Post ou dans un sanitize_helper? Quelle est la syntaxe correcte ici?

+0

Cette "sanatize" typo est hilarant lol !! ;) – jpemberthy

Répondre

3

Voici le lien de documentation pour la méthode sanitize dans Rails 2.3.8. Dans cet esprit, vous serez en mesure de définir des balises autorisées dans cette façon:

<%= sanitize(simple_format(@post.body), :tags => %w(p span strong)) %> 

Notez que vous pouvez les définir aussi à l'intérieur des rails Initializer:

Rails::Initializer.run do |config| 
    config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td' 
    end 

J'espère que vous il été utile!

+0

C'est exactement ce que je cherchais. Merci. – bgadoci