使用innerHTML插入内容不执行<script>标签,这是一个安全假设


inserting content with innerHTML doesn't execute <script> tags, can this be a security assumption?

我使用ajax从php获取内容以更新我页面上的内容。我想知道,因为我使用javascript innerHTML插入内容,是否有必要检查脚本标签,因为据我所知,添加了innerHTML的脚本标签不会运行,除非你有意评估它们。

可以用innerHTML插入脚本吗?

这应该能回答你的问题。如果您希望对脚本标记进行评估,则必须手动执行。如果有比一个脚本标签更多的代码,那么你将不得不检查脚本标签。

有一些方法可以解决这个问题,如示例所示(将脚本放在onload事件的空标记中),但是您必须更改从服务器检索的内容。


如果你害怕客户端会插入将被执行的有害Javascript,那就害怕吧!永远不要在客户端做任何敏感的操作。

相关文章: