4
owasp-java-html-sanitizer를 사용하여 사용자 생성 HTML에 대해 몇 가지 작업을 수행 할 계획입니다.owasp-java-html-sanitizer를 사용한 링크 추출
html 문자열에서 URL 목록을 추출하고 싶습니다.
모든 링크의 타겟이 "_blank"로 설정되어 있는지 확인하고 싶습니다. HtmlPolicyBuilder.requireRelNofollowOnLinks
구성과 유사합니다.
PolicyFactory linkRewrite = new HtmlPolicyBuilder().allowAttributes("href").onElements("a")
.requireRelNofollowOnLinks().allowElements(new ElementPolicy() {
public String apply(String elementName, List<String> attrs) {
attrs.add("target");
attrs.add("_blank");
return "a";
}
}, "a").toFactory();
이 링크에 target="_blank"
, 그것을 달성하기 위해 확실하지 그 최선의 방법을 추가 (완료).
이 또한 URL을 추출합니다
.allowElements(new ElementPolicy() {
public String apply(String elementName, List<String> attrs) {
for (int i = 0, n = attrs.size(); i < n; i += 2) {
if ("href".equals(attrs.get(i))) {
urls.add(attrs.get(i + 1));
break;
}
}
attrs.add("target");
attrs.add("_blank");
return elementName;
}
}, "a")
당신은 당신이 (...)'할 "HREF".equals 필요가 없도록 속성 정책을 사용 '또는 수 돌이 'attrs' 배열의 내용. 'target '을 다른 곳에 허용합니까? 그렇다면 원하는 것이 아닌 두 개의 목표로 끝날 수도 있습니다. –
당신의 질문은 무엇입니까, btw? –
잠시 기다려 봤지만 질문은 'hr'이전이었고 모든 것이 내가 질문 한 후에 알아 낸 것입니다. 만약 당신이'속성 정책'을 사용하여 대답을 풀어 냈다면 나는 그것을 대답으로 받아 들일 것입니다. –