XML ファイルをデータベースとして使用しています。MySQL データベースからエントリを取得します。新しいエントリを追加するために、名前、日付、場所などのパラメーター化されたクエリを取得し、情報が適切な形式で提供されている場合にデータベースにデータを入力するページがあります。
たとえば、名前を入力したい場合は、次のようにエンコードします。
String name = "Mark" // Just for demonstration
String nameEn = URLEncoder.encode(name, "UTF-8");
これが私が予備的なサニタイズを行う方法です。追加の保護のために、私はこれを試しました:
UrlQuerySanitizer sanitizer = new UrlQuerySanitizer();
sanitizer.setAllowUnregisteredParamaters(true);
sanitizer.parseUrl(url); //Url being the total url with parameters
ただし、新しい行が挿入されない場合があります。これは、コンマやアポストロフィを使用したときに発生するため、サニタイズと関係があると思います。
私は何を間違っていますか?ありがとう。
編集:より具体的に
次のようなパラメーター化されたクエリを使用してデータベースエントリを挿入するphpファイルがあります。
www.example.com/newentry.php?name=thename&location=thelocation1
URL文字列を連結してthename
(thelocation
入力として取得)サニタイズして、URLで機能するようにします。コンマやアポストロフィなどを使用すると、そのエントリの挿入に失敗します。これは、取得した入力が正しくサニタイズされていないためです。