3

ユーザー入力のクライアント側をサニタイズする方法は知っていますが、サーバー側でも行います。それを行う適切な場所は を使用していることは知っていますが、これまでのところ、タグや SQL インジェクションなどの他の潜在的な有害なコンテンツに対してchangeset適切に行う方法の例を見つけることができません。<script></script>ユーザーが HTML コンテンツを変更してその HTML をデータベースに保存できるようにしたいので、標準の検証を使用できずraw、テンプレートに HTML を表示します。誰かが私に例を挙げてもらえますか?

4

1 に答える 1

3

phoenix_htmlライブラリは、デフォルトでユーザー入力をサニタイズします。

<%= "<script>alert("hi")</script>" %>

次のように表示されます。

&lt;script&gt;alert("hi")&lt;/script&gt;

これはraw/1でオーバーライドする必要があります:

<%= raw "<script>alert("hi")</script>" %>

として表示されます

<script>alert("hi")</script>

これを自分で (たとえば、EEx テンプレートの外部で) 行いたい場合は、html_escape/1を使用できます。

于 2015-09-17T11:43:47.773 に答える