2017-10-09 142 views
0

我非常清楚,我可以用消毒的innerHTML绑定的数据:奥里利亚:正确消毒的innerHTML绑定的数据

<div innerhtml.bind="someData | sanitizeHTML"></div> 

但是,根据我的观察,这个消毒不仅能消除<script>标签。它不保护从事件驱动的内容,例如用户:

"Hi! I am some HTML-formatted data from the server! <button onclick="getRekt();">Click me for butterflies!</button>" 

有没有更好的办法,以防止任何类型的JavaScript或事件回调从元件上所呈现?

回答

1

sanatizeHTML值转换器是一个非常简单的杀毒软件,只能删除脚本标签。请参阅代码here

您可以使用更复杂的santizer创建自己的值转换器。有关如何在浏览器中清理html的更多详细信息,请参阅this answer

但是不要忘记永远不要相信浏览器,如果可以的话,最好在服务器端清理html,然后再发送给浏览器来显示它。

+0

感谢您指点我正确的方向!服务器实际上是在进行消毒,我只是想要一个客户端的消毒器来提供更安全的防伪。 –