JSOUP - 如何获取 html 中不允许的标签列表?
JSOUP - How to get list of disallowed tags found in html?
我使用 JSoup 来保护富文本区域免受有害代码的侵害。如何获取在传递给 JSoup 的解析、清理或 isValid 函数的字符串中找到的所有不允许 tag/code 的列表?
我使用 ColdFusion,可以像这样用 JSoup 解析文本:
var jsoupDocument = application.jsoup.parse( this.Description );
如何使用 JSoup 的 getErrors()
函数获取列表以查看哪个 HTML 不符合我的 whitelist.relaxed()
?
我不相信 jsoup 中有直接函数可以根据您的白名单获取无效元素的列表。你必须自己动手。
并不太复杂。您仍然可以使用 Document
对象、select 所有元素,然后使用 jsoup 的 isValid()
函数根据您的白名单单独检查它们。
例如,这可能会让您入门...
<cfscript>
jsoup = createObject("java", "org.jsoup.Jsoup");
whitelist = createObject("java", "org.jsoup.safety.Whitelist").relaxed();
form.textarea = '<header>Hi</header><script>hello</script><nav><li>Links</li></nav></textarea>';
badTags = [];
content = jsoup.parse(form.textarea).body().select("*");
for(element in content) {
// tagName() doesn't inlcude the brackets so add them in
tag = chr(60) & element.tagName() & chr(62);
if (!jsoup.isValid(tag, whitelist)) {
arrayAppend(badTags, tag);
}
}
writeDump(badTags);
</cfscript>
我使用 JSoup 来保护富文本区域免受有害代码的侵害。如何获取在传递给 JSoup 的解析、清理或 isValid 函数的字符串中找到的所有不允许 tag/code 的列表?
我使用 ColdFusion,可以像这样用 JSoup 解析文本:
var jsoupDocument = application.jsoup.parse( this.Description );
如何使用 JSoup 的 getErrors()
函数获取列表以查看哪个 HTML 不符合我的 whitelist.relaxed()
?
我不相信 jsoup 中有直接函数可以根据您的白名单获取无效元素的列表。你必须自己动手。
并不太复杂。您仍然可以使用 Document
对象、select 所有元素,然后使用 jsoup 的 isValid()
函数根据您的白名单单独检查它们。
例如,这可能会让您入门...
<cfscript>
jsoup = createObject("java", "org.jsoup.Jsoup");
whitelist = createObject("java", "org.jsoup.safety.Whitelist").relaxed();
form.textarea = '<header>Hi</header><script>hello</script><nav><li>Links</li></nav></textarea>';
badTags = [];
content = jsoup.parse(form.textarea).body().select("*");
for(element in content) {
// tagName() doesn't inlcude the brackets so add them in
tag = chr(60) & element.tagName() & chr(62);
if (!jsoup.isValid(tag, whitelist)) {
arrayAppend(badTags, tag);
}
}
writeDump(badTags);
</cfscript>