谷歌卡哈 - 阻止恶意代码(Google caja - Block malicious code)

2019-09-22 02:52发布

我需要在我的网站安全的HTML。

我看了,虽然卡哈指导,我不知道如果我理解的conecpt。

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

我认为是这样的:

  • 用户提交恶意内容到我的分贝
  • 我想呈现它。 卡哈识别恶意代码,并阻止它。

但我怎么渲染它虽然卡哈? 他们没有自己的网页上解释,他们只展示如何更换代码。

<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>

我怎么会告诉卡哈来阻止脚本标签?

Answer 1:

如果你想有只消毒HTML(即无脚本执行的话),你并不需要所有的卡哈,就在HTML的消毒剂。

使用方法:

<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代替。



Answer 2:

在我看来AntiSamy是一个更好的方法。

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

它是真的简单



文章来源: Google caja - Block malicious code