一个循环
在url中输入img标签
<img src=1 οnerrοr=alert(1)>
执行之后,我们看到src属性消失了,只留下来onerror属性,
分析原因,我们断点执行,一步一步来看。在第一个for里面,el传递的是img标签,而后面的“*” 代表标签内的所有元素,attr代表img标签内的属性,而下图的0和1则代表的索引下标,而后面的el.removeAttribute(attr.name);即删除了img的第一个属性,就是src,为什么onerror没有被删除掉,可以理解为这个删除是按照空间位置来删的。索引为[0]在第一个空间位置,索引为[1]在第二个空间位置,当把第一个空间位置清理出来,删除就会来到第二个空间位置,但因为第一个空间位置为空,原空间二自动填充,及此时所有空间都往前移了一位,则此时若删除空间二的内容,实际删除的是空间三的内容。