2011-01-11 8 views
3

ich ein Formular abgeschickt, einreihig in SQL-Datenbank-Tabelle zu erstellen, als ein Blog-Eintrag:Rails 3 macht nicht HTML als Auszeichnungs

<p>This is a paragraph.</p>

Und das Ergebnis, wenn ich es für die Anzeige abfragen aus , über Rails des Active, es so gemacht,:

<p>This is a paragraph.</p>

und hier ist der Code, wenn ich Quelle in Browser anzeigen:

&lt;p&gt;This is a paragraph.&lt;/p&gt;

Wie löse ich das? Oder ich muss nur die < und > von Javascript konvertieren?

Danke :)

Antwort

7

Was passiert ist, dass die Zeichenfolge HTML-escaped wird.

Sie könnten html_safe verwenden, um die Zeichenkette nicht zu rendern, wenn sie gerendert wird. Zum Beispiel <%= post.paragraph.html_safe %>. das heißt nicht empfohlen, falls Sie das Formular zu speichern (frei) HTML an erster Stelle erlaubt, könnte es zum Beispiel bösartigen JavaScript (zB für XSS) enthält

Aber natürlich. Unnötig zu sagen, dass das extrem schlecht ist.

Wichtiger Hinweis Sie sollten sicherstellen, dass das HTML enthält eine weiße Liste der erlaubten HTML-Tags vor html_safe auf einem beliebigen HTML verwenden. Darüber hinaus möchten Sie die Whitelist möglicherweise auch beim Speichern des Formularinhalts erzwingen (Beachten Sie, dass das Erzwingen der Whitelist beim Speichern von kein Ersatz für die Durchsetzung der Whitelist bei der Anzeige des Inhalts ist!).

Sie möchten vielleicht von diesem StackOverflow's own "rules" starten.

+0

Vielen Dank! – howdy