• 一个循环问题以及两个循环问题,其中两个循环需要两种不同方式实现


    复现一个循环问题以及两个循环问题,其中两个循环需要两种不同方式实现
    一、一次循环
    在这里插入图片描述
    1、截取#后面的值,创建一个div,把#后面的值赋值给div,然后使用querySelectorAll抓div的子元素,获取它的属性,再把子元素的属性全部删除。
    2、当我们传递了
    在这里插入图片描述
    3、在进行循环的过程中,attr首先匹配到的是src元素,然后在循环过后直接删除,删除了之后,剩余的哪个onerror自动往前移动,onerror替代了src第一个的位置,它就变成了第一个,但是我在刚刚循环的时候,已经把第一个给循环了,我要去循环下一个的时候它没有了,所以我就结束循环了。所以我们可以利用这一机制,将img标签中放入其他的属性,删除其他的属性来让我们要输出有用的属性进行输出。

    在这里插入图片描述

    4、因为删除元素时因为索引问题我们不清楚到底删除了哪些元素,所以我们仅需要进行多次尝试就可以绕过一次循环:


    在这里插入图片描述
    二、二次循环
    在这里插入图片描述

    两种思路:一种是不进循环,另一种是进入循环后不删除
    1、不进循环的方法
    这里使用的是两个svg标签,使用来尽行绕过,它可以在过滤代码之前进行绕过,它在代码的root.innerHTML = data;就已经执行了。
    在这里插入图片描述
    2、不进循环

    在这里插入图片描述

    svg标签会阻塞DOM的构造。JS环境里对DOM操作又会导致回流,为DOM树构造造成额外影响。在script标签内的JS执行完毕以后,DOM树才会构建完成,接着才会加载后面的内容,然后发现加载内容出错才会触发error事件。

    就是恶意代码还没有进入循环就已经执行了,所以后面无论进不进循环都没有什么意义了。

  • 相关阅读:
    数据结构与算法之折半查找
    spring多个AOP执行先后顺序记录
    Cairo介绍及源码构建安装(3)
    docker基础
    QT 布局垂直居中【比例放大缩小仍然居中】
    FW Read protection in code level
    英语学习笔记30——What must I do?
    HTML网页规划与设计【冬季奥林匹克运动会——带报告5200字】HTML+CSS+JavaScript
    力扣labuladong一刷day14天翻转单链表共2题
    电子器件 电容的参数、选型与使用技巧
  • 原文地址:https://blog.csdn.net/StriverNumber1/article/details/126148448