4

Whitelist任意の値を許可せずに、内部アンカー参照を許可するようにjsoupを構成するにはどうすればよいですか?

HTMLの例:

<a href="#section1" target="_self">Jump To Section 1</a>
    <!-- ... -->
<a name="section1">Section 1</a>

リラックスしてコードをクリーンアップしようとするとWhitelisthrefが削除されます。

Jsoup.clean(html, Whitelist.relaxed().addAttributes("a", "name", "target");

次を返します。

<a target="_self">Jump To Section 1</a>
   <!-- ... -->
<a name="section1">Section 1</a>

を手動で作成し、必要なWhitelistタグと属性を追加したが、呼び出さない場合はaddProtocols(....)、jsoupをそのままにしておくことができますがhref、それはフィルターで除外されないため、適切な解決策とは思えませんhref。 JavaScriptが含まれています。たとえば、タグ(または少なくともhref)を以下から削除したい場合:

<a href="javascript:alert(1111);" target="_self">Jump To Section 1</a>
<a name="section1">Section 1</a>

これはjsoupで可能ですか?

jsoupへの次のパッチ送信を確認しましたが、jsoupコードベースに組み込まれたようには見えません: https ://github.com/jhy/jsoup/pull/77

4

3 に答える 3

3
Whitelist whitelist=new Whitelist();

Cleaner cleaner = new Cleaner(whitelist);

whitelist.addAttributes("a","accesskey","dir","lang","style","tabindex","title","href");

cleaner.clean(doc);
于 2012-09-10T13:22:28.407 に答える