0

コンテンツと返信をHTMLページに投稿するテキストボックスと送信ボタンがあります。方法はありますか (文字列の最初の部分文字列が

    <h1>,<h2>,<h3>...,<script>,<style>,etc.

コード インジェクションを防ぐために、文字列がページに投稿されるときに異なる形式になるかどうかを確認するには?

ありがとう

-ザック

4

1 に答える 1

1

ユーザー データを表示するときは、それを html として正しくエンコードする必要があります。javascript では、document.createTextNode(userData)innerHTML を使用する代わりに、そのノードを使用して追加します。PHP では、 を使用しますhtmlentities

ユーザーが任意の html またはフォーマットの使用を許可されている場合は、許可されているタグと属性の厳密なホワイトリストを使用してそれらを実行し、その他すべてをプレーン テキストとしてエンコードする必要があります。

そのため、ユーザーが を入力<h1>stuff</h1>したとしても、それが適切にエンコードされていれば、 &lt;h1&gt;test&lt;/h1&gt;javascript インジェクションに対して脆弱ではない html の代わりに出力されます。

于 2013-11-09T01:50:23.033 に答える