=_= 在 JavaScript 或 HTML 中是啥意思?

Posted

技术标签:

【中文标题】=_= 在 JavaScript 或 HTML 中是啥意思?【英文标题】:What does =_= mean in JavaScript or HTML?=_= 在 JavaScript 或 HTML 中是什么意思? 【发布时间】:2022-01-24 04:18:12 【问题描述】:

读到这个XSS cheat sheet,我注意到一个我从未见过的特殊用法:

<img src="/" =_=" title="onerror='prompt(1)'">

“=_=”是什么意思?它在“On Mouse Over​”这句话的下方。

【问题讨论】:

【参考方案1】:

它只是元素上的一个属性。它本身没有任何意义,所以它可能只是作为一条红鲱鱼出现。

美化一下,代码是:

<img
  src="/"
  =_=" title="
  onerror='prompt(1)'"
>

html 中,属性中的= 指定了属性名称和属性值之间的分隔符,所以它是:

=_=" title="
^^ attribute name

=_=" title="
  ^ delimiter between attribute name and attribute value

=_=" title="
   ^ attribute value contents delimiter

=_=" title="
    ^^^^^^^ attribute value

=_=" title="
           ^ attribute value contents delimiter

如果需要,您可以检索属性值。

const img = document.querySelector('img');
console.log(img.getAttribute('=_'));
<img
  src="/"
  =_=" title="
  onerror='prompt(1)'"
>

请注意,属性名称是=_,而不是=_= - 最后的= 是分隔符,不是属性名称的一部分。

“XSS”仅由srconerror 引起,而不是由其他任何原因引起。无论您在哪里遇到这种情况,=_ 可能根本不会做任何事情。 可以,但可能不会。

&lt;img src="/" onerror='prompt(1)'"&gt;

【讨论】:

它针对一些 WAF 解析器,因此他们认为 onerror 部分在 title 属性内,因此“无害”。

以上是关于=_= 在 JavaScript 或 HTML 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Javascript或HTML在新窗口中打开链接[重复]

javascript_获取iframe框架中元素节点的属性值

如何在没有任何类名或 ID 的情况下使用 Javascript 或 JQuery 替换 HTML 标签

04_JavaScript

在HTML文档中引入JavaScript有两种方式,一种是内嵌式;另一种是_____?

angular.js_$scope