码迷,mamicode.com
首页 > Web开发 > 详细

element.innerHTML所涉及的安全问题

时间:2018-02-09 22:17:33      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:ted   cal   esc   html   javascrip   exec   ant   extc   xss攻击   

众所周知,innerHTML属性是在IE4引入的,很多浏览器也支持它很长一段时间,HTML5的到来才使它得以标准化。

innerHTML在MDN上的解释为:

The Element.innerHTML property sets or gets the HTML syntax describing the element‘s descendants.

也就是可以设置和获取HTML语法表示的元素后代,获取就不多说了,但是设置可能会引发安全问题:

element.innerHTML="<script>console.log(‘hello‘)</script>";

即在元素后代中插入脚本,这个可能会给类似XSS攻击“留了一手”,像上面的例子其实并不会执行嵌入的js脚本,MDN上也指出“HTML5 specifies that a <script> tag inserted via innerHTML should not execute.”。

所以,业界并不推荐用innerHTML插入文本,而用node.textContent替代。

element.innerHTML所涉及的安全问题

标签:ted   cal   esc   html   javascrip   exec   ant   extc   xss攻击   

原文地址:https://www.cnblogs.com/linweinb/p/8436714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!