0

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文字列を連結してthenamethelocation入力として取得)サニタイズして、URLで機能するようにします。コンマやアポストロフィなどを使用すると、そのエントリの挿入に失敗します。これは、取得した入力が正しくサニタイズされていないためです。

4

1 に答える 1

1

あなたはあなたの誤りのために間違った場所を見ています。

,またはが有効なURLで'あるため、問題はサーバー側にある必要があります。

値を操作していると思いますので、これらの値をデータベースに挿入する前に$_GET["parameter"]、必要な処理を必ず行ってください。mysql_real_escape_string($_GET["parameter"])

より深い知識については、を検索してSQL Injectionsください。これもあなたを無料で妄想させるかもしれません:)

于 2012-06-01T04:00:41.370 に答える