aurelia:正确清理 innerHTML 绑定数据
aurelia: properly sanitizing innerHTML-bound data
我完全知道我可以使用以下方法清理 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 或事件回调?
sanatizeHTML 值转换器是一个非常简单的清理程序,仅删除脚本标签。请参阅代码 here。
您可以使用更复杂的消毒器创建自己的值转换器。查看 this answer 以了解有关如何在浏览器中清理 html 的更多详细信息。
但是不要忘记永远不要信任浏览器,如果可以的话最好在服务器端清理html然后再发送到浏览器显示它。
我完全知道我可以使用以下方法清理 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 或事件回调?
sanatizeHTML 值转换器是一个非常简单的清理程序,仅删除脚本标签。请参阅代码 here。
您可以使用更复杂的消毒器创建自己的值转换器。查看 this answer 以了解有关如何在浏览器中清理 html 的更多详细信息。
但是不要忘记永远不要信任浏览器,如果可以的话最好在服务器端清理html然后再发送到浏览器显示它。