1

ユーザーが生成したテキストを Web ページに安全に書き出すにはどうすればよいですか?

エスケープする必要がある文字の完全なリストはありますか?

",+,: - 文字はおそらくエスケープする必要がありますが、何をする必要があるかについては、おそらくより包括的なリストがあります。

ページをリダイレクトしたり混乱させたりするJavaScriptやその他のものを挿入するエクスプロイトを行う可能性について考えています。若い世代は創造性が豊かです。

4

4 に答える 4

0

(同様の質問に対する自分の回答をコピーする- これが悪い習慣と見なされる場合は、私に警告してください。)

クロス サイト スクリプティング防止に関する OWASP チート シートを参照してください。要約すると、次のようになります。

  • 信頼できないデータを配置してはならない場所に注意する
  • 信頼できないデータを配置できるさまざまな種類の場所でデータをエスケープするさまざまな方法を認識する
  • ブラックリスト (指定された安全でない文字のみをエスケープする) の代わりに、ホワイトリスト (指定された安全な文字を除くすべてをエスケープする) を使用する

(ただし、この要約に頼るのではなく、ドキュメント全体を読んでください...)

于 2011-02-26T16:27:46.087 に答える
0

この脆弱性は XSS 攻撃と呼ばれます。さまざまなプログラミング言語には、自動的にエスケープを行う機能があります。たとえば、php では、htmlspecialchars()生でレンダリングされるユーザー テキストをエスケープするために呼び出される関数を使用できます。他の言語にも同様の機能があります。

ユーザーが html のサブセットのみを使用できるようにしたい場合 (つまり、ユーザーが投稿をある程度フォーマットすることを許可されているフォーラムがある場合など)、これはさらに複雑になり、実際にテキストを解析する必要があります。何を許可し、何を許可しないかを決定します。これを行うさまざまなエンジンがあります (たとえば、SO が使用するマークダウン)。

于 2011-02-26T16:19:59.807 に答える
0

<>&およびをエスケープ'するだけで十分です。

于 2011-02-26T16:21:09.110 に答える
0

サーバー側の言語に応じて、これには特別な方法があります。

于 2011-02-26T16:24:35.633 に答える