ホームページ  >  に質問  >  本文

選択ボックス オプションの js.erb テンプレートを更新 - XSS を安全に処理し、テキストを正しく表示します

Rails アプリケーションで .js.erb ファイルをレンダリングしています。このファイルでは、選択ボックスのオプションを更新しています。

最も重要なことは、XSS 安全な方法で実行することです。このスタック オーバーフロー ソリューションに基づいて、OWASP DOM ベースの XSS 防止チートシートを参照して、次の方法で選択ボックスのオプションを更新します。

1つ試してみる リーリー

2 つ試してみる

Rails に

html_safe メソッドがあることは知っていたので、それを使ってみました。 "<%= blog.name %>";" < ;%= blog.name.html_safe %>";

3 つ試してみる

この方法は

効果的だと思われます。オプションが更新され、表示テキストは正常に機能しますが、表示テキスト alert("gotcha"); を持つオプションはテキストとして表示されるだけで、コードとして実行されません。 リーリー

.js.erb

テンプレートから選択オプションを更新する方法が不明です。

P粉674757114P粉674757114185日前372

全員に返信(1)返信します

  • P粉594941301

    P粉5949413012024-03-31 11:24:38

    私の理解を伝えてみてください:

    • 1つ試してみる

    特殊文字を デコードすることはできますが、これは Rails の方法ではありません。

      2つ試してみる

    html_safe は文字列の結果が安全であることを保証しませんが、文字列内の HTML タグを HTML 形式で表示できるように文字列が安全であることを明示的に指定しているため、問題は解決されません。 XSS の問題。 リーリー

      3つ試してみる
    この記事

    によると、escape_javascript を一重引用符または二重引用符で囲んで使用しても安全です。 リーリー したがって、試行 3 は XSS 安全で Rails の方法であるため、推奨されます。

    コードは次のように簡略化できます:

    リーリー

    返事
    0
  • キャンセル返事