所以 "<h1>Hello World</h1>"
只会返回“Hello World”。
我试过:
$('<div>').html('<h1>Hello World</h1>').text()
这在大多数情况下都可以正常工作,但是当字符串是这样的时候它确实会打开一个 xss 漏洞:<img src=1 onerror=alert(/XSS/)>
,当我期望它返回一个空字符串时
最佳答案
您可以尝试在此处找到此代码- Fastest method to escape HTML tags as HTML entities?
function sanitize(str) {
return str.replace(/&/g,'').replace(/</g,'').replace(/>/g,'');
}
在您的示例中,假设有如下所示的 html:
<div><img src=1 onerror=alert(/XSS/)></div>
像这样简单地清理它:
var string = $('div').text();
var sanitized = sanitize(string); // "img src=1 onerror=alert(/XSS/);"
关于javascript - 如何以安全可靠的方式只抓取 HTML 元素的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30469645/