Frage

Ich habe eine Anwendung erstellt, die für die Benutzer zur Eingabe von vielen verschiedenen Daten ermöglicht (Posts, Kommentare, etc.). Die simple_format ist gut für mich jetzt Ich will nur gegen verrückte Sachen schützen. Ich habe sanitize nicht verwendet, bevor und nachdem er einige Führer Lesen Ich bin immer noch ein wenig verwirrt darüber, wie zu implementieren. Hoffnung, die ich hier irgendeine Richtung zu bekommen.

Sagen wir, ich @ post.body sammle. Wie entferne ich alle <div> -Tags oder <script> Tags, die vom Benutzer eingegeben werden könnten? Ich gehe davon aus, dass in der Ansicht es in etwa so aussehen:

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

... aber wo definiere ich, was Tags sind nicht erlaubt? In dem Post-Modell oder in einem sanitize_helper? Was ist die korrekte Syntax hier?

War es hilfreich?

Lösung

Hier ist die Dokumentation Link für die sanitize Methode in Rails 2.3.8. In diesem Sinne können Sie erlaubt Tags auf diese Weise definieren:

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

Beachten Sie, dass Sie sie auch innerhalb der Rails Initializer definieren:

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

Ich hoffe, dass Sie dies hilfreich finden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top