JavaでURL文字列またはフォームパラメータをエンコードする方法
これは、URLまたはフォームパラメータをエンコードするために常に推奨されます。プレーンフォームパラメーターは、クロスサイト攻撃、SQLインジェクションに対して脆弱であり、Webアプリケーションを予期しない出力に誘導する可能性があります。 URL文字列またはフォームパラメータは、URLEncoderクラス–静的エンコード(String s、String enc)メソッドを使用してエンコードできます。
たとえば、ユーザーが次の特殊文字を入力し、Webアプリケーションがエンコードを処理しない場合、クロスサイトスクリプト攻撃が発生します。
]]>
URLEncoderを使用して文字列をエンコードし、URLDecoderを使用してエンコードされた文字列をデコードする例
package com.example;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class testEncode {
public static void main(String args[]) {
try {
String url = " ]]>";
String encodedUrl = URLEncoder.encode(url, "UTF-8");
System.out.println("Encoded URL " + encodedUrl);
String decodedUrl = URLDecoder.decode(url, "UTF-8");
System.out.println("Dncoded URL " + decodedUrl);
} catch (UnsupportedEncodingException e) {
System.err.println(e);
}
}
}
結果
Encoded URL %3C%21%5BCDATA%5B+%3CIMG+SRC%3D%22+%26%2314%3B+ javascript%3Adocument.vulnerable%3Dtrue%3B%22%3E+%5D%5D%3E Dncoded URL ]]>
すべての脆弱性攻撃を防ぐために、URL文字列とフォームパラメータを常にエンコードすることを忘れないでください。