1

Web サイトに安全な html が必要です。

caja ガイドを読みましたが、conecpt を理解しているかどうかわかりません。

https://developers.google.com/caja/docs/gettingstarted/

次のようになると思います。

  • ユーザーが悪意のあるコンテンツをデータベースに送信する
  • レンダリングしたい。Caja は悪意のあるコードを認識してブロックします。

しかし、どうすればcajaでレンダリングできますか? 彼らは自分のページでこれを説明していません。コードを置き換える方法を示しているだけです。

<script type="text/javascript">
      document.getElementById('dynamicContent').innerHTML = 'Dynamic hello world';
</script>

ドキュメントが次のようになるとしましょう

<body>
    <div class="input">
        <h3>User Input </h3>
        <script> alert("I am really bad!"); </script>
    </div>

    <div class="input">
        <h3>User Input </h3>
        <p> I am safe HTML!</p>
    </div>
</body>

script タグをブロックするように caja に指示するにはどうすればよいですか?

4

2 に答える 2

12

html を単にサニタイズしたい (つまり、スクリプトをまったく実行しない) 場合は、Caja のすべては必要なく、html-sanitizer だけが必要です。

使用するには:

<script src="http://caja.appspot.com/html-css-sanitizer-minified.js"></script>
<script>
  var sanitized = html_sanitize(untrustedCode,
    /* optional */ function(url) { return url /* rewrite urls if needed */ },
    /* optional */ function(id) { return id; /* rewrite ids, names and classes if needed */ })
</script>

サニタイズされた CSS スタイルを許可したくない場合は、代わりにhttp://caja.appspot.com/html-sanitizer-minified.jsを使用してください。

于 2012-09-04T17:28:51.593 に答える
0

私の意見では、AntiSamy の方がはるかに優れたアプローチです。

https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project#What_is_it.3F

そして、それは本当に簡単です

于 2012-09-03T21:21:54.347 に答える