=_= 在 JavaScript 或 HTML 中是什么意思?

What does =_= mean in JavaScript or HTML?

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

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

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

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

美化了,代码是:

<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 引起,与其他任何因素无关。无论您在哪里遇到这种情况,=_ 可能根本不做任何事情。 可以,但可能不会。

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