public final class HtmlTagUtil
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
escapeHtml(java.lang.Object s)
HTMLエスケープを行う。
このメソッドは、セキュリティ上問題のある文字列のHTMLエスケープ行う。
文字列がnullであった場合、nullを返す。 |
static java.lang.String |
escapeHtml(java.lang.Object s,
boolean withHtmlFormat)
HTMLエスケープ及び半角スペースと改行の変換を行う。
このメソッドは、下記の処理を行う。
セキュリティ上問題のある文字列のHTMLエスケープ処理
改行、半角スペースの変換
文字列がnullであった場合、nullを返す。
|
static java.lang.String |
escapeHtml(java.lang.Object s,
boolean withHtmlFormat,
java.util.List<java.lang.String> safeTags,
java.util.List<java.lang.String> safeAttributes)
HTMLエスケープ、半角スペース・改行の変換を行う。
HTMLエスケープ対象外のタグを指定した場合は、指定したタグにのみHTMLエスケープを行わない。
このメソッドでは、下記の処理を行う。
セキュリティ上問題のある文字列のHTMLエスケープ
改行、半角スペースの変換
HTMLエスケープ対象外に指定したタグのエスケープのスキップ
文字列がnullであった場合、nullを返す。
|
@Published(tag="architect") public static java.lang.String escapeHtml(java.lang.Object s)
HTMLエスケープ例:
& -> &
< -> <
> -> >
" -> "
' -> '
実装例:
String str = "&<>\"\'";
HtmlTagUtil.escapeHtml(str); //-->&<>"'
s
- エスケープ対象のオブジェクト@Published(tag="architect") public static java.lang.String escapeHtml(java.lang.Object s, boolean withHtmlFormat)
HTMLエスケープ例: & -> & < -> < > -> > " -> " ' -> 'withHtmlFormatにtrueが指定された場合は、半角スペースと改行の変換を行う。
半角スペース、改行の変換例: " "(半角スペース) -> \n、\r、\r\n -> <br/>
実装例:
String str = " \r\n\n\r";
HtmlTagUtil.escapeHtml(str, true) //--> <br/><br/><br/>
s
- エスケープ対象のオブジェクトwithHtmlFormat
- 改行変換と半角スペース変換を行う場合はtrue@Published(tag="architect") public static java.lang.String escapeHtml(java.lang.Object s, boolean withHtmlFormat, java.util.List<java.lang.String> safeTags, java.util.List<java.lang.String> safeAttributes)
HTMLエスケープ例: & -> & < -> < > -> > " -> " ' -> 'withHtmlFormatにtrueが指定された場合は、半角スペースと改行の変換を行う。
半角スペース、改行の変換例: " "(半角スペース) ->
\n、\r、\r\n -> <br/>
実装例:
String str = " \r\n\n\r";
HtmlTagUtil.escapeHtml(str, true, null, null) //--> <br/><br/><br/>
エスケープ対象外のタグとその中で使用できるタグの属性を設定した場合は、さらに下記の変換を行う。
実装例:
String str1 = "<a href=\"javascript:alert();\" name=\"サンプル\">あいう</a>";
String str2 = "<a href=\"xxx.html\" name=\"サンプル\">あいう</a>";
List<String> list1 = Arrays.asList("a");
List<String> list2 = Arrays.asList("href", "name");
//属性値の内容がセキュリティ上問題のあるものだった場合、設定と関係なくエスケープされる
HtmlTagUtil.escapeHtml(str1.toString(), false, list1, list2);
//--><a href="javascript:alert();" name="サンプル">あいう</a>
//属性地の内容がセキュリティ上問題のないものだった場合、設定したタグはエスケープされない
HtmlTagUtil.escapeHtml(str2.toString(), false, list1, list2);
//--><a href="xxx.html" name="サンプル">あいう</a>
s
- エスケープ対象のオブジェクトwithHtmlFormat
- 改行変換と半角スペース変換を行う場合はtruesafeTags
- エスケープ対象外のタグsafeAttributes
- エスケープ対象外のタグの中で使用することができる属性。
(ここに無い属性が使用されていた場合は、エスケープ対象外のタグでも、
エスケープされる。)