私は一般的なSQLインジェクションについて多くのことを読んだので、それらを修正する方法に興味を持ちました。以前は
addslashes()
、それが適合すると(ひどく)考えていました。それから私はそれmysql(i)_real_escape_string()
がよりもはるかに便利で信頼できることを発見しましたaddslashes()
。それ以来使っていますmysqli_real_escape_string()
が、最近はよくわからないことがあります。mysqlと文字セットにデータを送信する際に問題が発生しました。それで、もう一度検索しましたが、多くのユーザーは、それSET NAMES UTF8
がすべてを正しく行う方法であると言います。しかし、そのクエリを使用すると機能しmysqli_real_escape_string()
なくなることを読みました。
結局、私は少し混乱しました。
SQLステートメントをエスケープする正しい方法は何ですか?
を使用して考えられるエクスプロイトは何SET NAMES UTF8
ですか?
mysqli_set_charset()
指定された文字セットで接続を通信させる正しい方法はありますか?
mysqli_sey_charset()
mysqlの内部変数はプロセスで変更されていますか?
ありがとう