1

これで何も見つからないのはおかしいと思いますが、そうです。

私のサイトでは、データベースに保存するテキストをユーザーが入力できるようにしています。私は PDO を使用して安全に保ちますが、すべての危険な文字の前に「\」が付きます。

それをすべて取り除く簡単な方法はありますか?MySQL で別のデータ型を使用する必要がありますか?

前もって感謝します!

二重エスケープはありません。怠惰がそれを妨げた

ストレート PDO を実行するだけで、エスケープ、サニタイズ、ブリーチ、スクラブなどを心配する必要がなくなると読みました...

標準の PDO INSERT を次のように実行します。PDO (sqllite3) に挿入するにはどうすればよいですか?

データはjQuery ajaxで送信されます。それが問題の原因ですか?もしそうなら、どうすればそれを逆にすることができますか?

ご協力いただきありがとうございます!

問題の詳細

引用符と二重引用符のみの前に「\」があります。ありがとう!

バージョン

Zend Guard との互換性のための PHP 5.3。MySQL 5.5。アパッチ 2.2.2。jQuery1.8.3

+1 リバース

これらの / を元に戻す方法についての回答と同じ数の +1 を提供します。ありがとう!

魔法の名言

が答えでした。チェックのために答えを長くしたい人はいますか?

以前のエスケープを元に戻す SQL ステートメントをまだ探しています。ありがとう!

4

2 に答える 2

4

これはmagic quotes、サーバーで有効にしたことが原因である可能性があります。特に、それはおそらくmagic_quotes_gpcディレクティブでありphp.ini.htaccess、 などで設定できますが、実行時に で設定することはできませんini_set

まず、 の出力を再phpinfo()確認して、これが問題であることを確認します。php.iniマジック クォートが有効になっていることがわかった場合は、サーバーへのアクセス権を持っている人が、または.htaccessファイルでそれを無効にする必要があります。PHP のマニュアルでは、このプロセスについて説明しています: http://www.php.net/manual/en/security.magicquotes.disabling.php

ただし、これには注意してください。マジック クォートに依存するコードがサーバー上で実行されている場合、それを無効にすると、それらのサイトが SQL インジェクションなどの攻撃に対して脆弱なままになる可能性があります。

于 2012-12-17T16:15:42.607 に答える
0

アプリケーションが PDO レイヤーに到達する前に、明らかに別のエスケープ処理が行われています。メソッド呼び出しを探すか入力して、それが行われているかどうかを確認しますaddslashesescape_string

あなたが見ているのは、ダブルエスケープの兆候です。

于 2012-11-16T00:22:37.367 に答える