無効なマルチセクション文字を使用して、SQL注入のために
をバイパスしますmysql_real_escape_string()
mysql_real_escape_string()
無効なマルチバイト文字を含む攻撃負荷:
<code class="language-sql">mysql_query('SET NAMES gbk');</code>
準備が整っていない攻撃負荷を使用してクエリを実行する:
<code class="language-php">$var = mysql_real_escape_string("\xbf\x27 OR 1=1 /*");</code>
安全対策
<code class="language-sql">mysql_query("SELECT * FROM test WHERE name = '$var' LIMIT 1");</code>
UTF8やLATIN1など、攻撃が容易ではない文字セットを選択します。 mysql_real_escape_string()
これにより、回転の過程で無効な文字が防止されます。
PDOを使用してシミュレーション前処理ステートメントを無効にします:
PDOは、潜在的な注入の脆弱性を防ぐために、実際の前処理文を提供します。MySQLの新しいバージョン(5.1以下のバージョン):
以上がSQLインジェクションバイパス `mysql_real_escape_string()`?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。