1 回答
TA贡献1804条经验 获得超3个赞
由于您已经使用 JSoup 解析 HTML,因此下一步是遍历每个元素以检查它们是否包含 Javascript。像这样的代码将检查每个元素:
boolean validateHtml(String html) {
Document doc = Jsoup.parse(html);
for(Element e : doc.getAllElements()) {
if(detectJavascript(e)) {
return false;
}
}
return true;
}
private boolean detectJavascript(Element e) {
if(/* Check if element contains javascript */) {
return true;
}
return false;
}
detectJavacript然后,您应该在函数内部执行几项检查:
当然,拒绝
script元素:e.normalName() == "script"on*拒绝在任何属性(onload、onclick等)中具有值的元素。每个接受 URL 的属性(
href、src等)都可以包含"javascript:"执行 JavaScript 的值。
最后,我建议不要将原始 html 存储到数据库中,即使它通过了您的验证。而是将 JSoup 解析的文档再次转换为 html。通过这种方式,您可以确保您的文档格式良好,不含任何“危险”元素。
添加回答
举报
