3

私のWebサイトでは、ユーザーはコンテンツのhtmlタグを入力できるため、テキストを太字、斜体、またはリンクと画像にすることができます。HTMLタグ(BBCコードやwiki構文ではない)を実際に使用しているckeditorまたはtinymceを使用する予定です。HTMLを許可すると、テキストが表示されるときに解釈され、javascriptやXSSなどの「ハック」が含まれる場合があります。 ..このセキュリティの問題を回避するにはどうすればよいですか?必要なhtmlタグをリストし、不要なタグとコンテンツをすべて削除する必要がありますか?これにストリップタグを使用できますか?

たとえば、stackoverflowでどのように行われますか?

制限されたhtmlタグを安全に保存して安全に解釈できるプラグインphp/jqueryプラグインを知っていますか?

よろしくお願いします

4

1 に答える 1

4

サーバー側のHTMLサニタイザーと、インラインスクリプト、eval、およびリモートでホストされるスクリプトを防止するコンテンツセキュリティポリシーの両方を使用する必要があります

サーバー側で使用している言語に応じて、HtmlSanitiserまたはpythonBleachを使用します。

クライアント側の検証またはナイーブフィルタリングのいずれかを使用しても、まったく保護されません。

  1. @Smamattiによって提案されているように、クライアント側の検証は、ユーザーがフォームを手動で送信した場合には役に立ちません。
  2. str_replace('<script>', '', $str);@ user1477388によって提案されたようなナイーブなフィルタリングは、誰かがアップロードしたとき、<script src="foo">または<<script>script>alert('foo');</script><body onload="alert('foo')";</body>
于 2012-09-13T13:09:54.603 に答える