利用 jquery html 编码 XSS
Exploiting jquery html encoding XSS
阅读后 this question 用户警告说这种编码方法 html 是不安全的
return $('<div/>').html(encodedText).text();
"don't use jQuery.html().text() to decode html entities as it's unsafe
because user input should never have access to the DOM
"
"I suggest using a safer, more optimized function"
此方法的目的是获取编码输入,即 Fish & chips
并产生未编码的输出,即 Fish & Chips
据我了解,他们声称对于 encodedText
的某个值,可以执行 javascript。我试图将此设置 encodedText
重现为 <script>alert(1)</script>
和其他一些简单的攻击,但无法找到任何 XSS 漏洞的迹象。
我的问题是:在使用 $('<div/>').html(encodedText).text()
时,任何浏览器中是否存在明显的 xss 漏洞?
有很多方法可以做到这一点,这是带有图像标签的 onerror 的一种方法。
var x = $("<div/>").html('<img src="X" onerror="alert(\'hi\');" />').text();
console.log(x);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
$('<div/>').html('<img onerror="alert(0)" src=invalid>').text()
阅读后 this question 用户警告说这种编码方法 html 是不安全的
return $('<div/>').html(encodedText).text();
"don't use jQuery.html().text() to decode html entities as it's unsafe because user input should never have access to the DOM "
"I suggest using a safer, more optimized function"
此方法的目的是获取编码输入,即 Fish & chips
并产生未编码的输出,即 Fish & Chips
据我了解,他们声称对于 encodedText
的某个值,可以执行 javascript。我试图将此设置 encodedText
重现为 <script>alert(1)</script>
和其他一些简单的攻击,但无法找到任何 XSS 漏洞的迹象。
我的问题是:在使用 $('<div/>').html(encodedText).text()
有很多方法可以做到这一点,这是带有图像标签的 onerror 的一种方法。
var x = $("<div/>").html('<img src="X" onerror="alert(\'hi\');" />').text();
console.log(x);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
$('<div/>').html('<img onerror="alert(0)" src=invalid>').text()