-1

防止コードを検索して追加しましたが、専門家のアドバイスが必要ですか?

SQL接続用に別のファイルを作成しましたが、include、require、include_onces、またはその他を使用する必要があるかどうか混乱していますか?

mysql_connect("localhost", "userr", "pass") or die(mysql_error()) ; 
mysql_select_db("databse") or die(mysql_error()) ;

UTF8ここでは、 との 2 つを追加しましmysql_real_escape_stringた。

$bad='anyone123';

$var = mysql_real_escape_string($bad);
$q = mysql_query('SET user_id UTF8');
$q = mysql_query("SELECT * FROM fbusers WHERE user_id = '$var'");
$r = mysql_fetch_array($q);

どうすればインジェクションを防ぐことができるかアドバイスをお願いします。100% ウェブサイトがハッキングされたくない :(

ありがとうございました

4

1 に答える 1

0

ユーザー入力が必要なクエリには、準備済みステートメントを使用する必要があります。これにより、クエリとパラメーターが別々に送信され、悪意のある入力をキャッチするためのセキュリティ レイヤーとして機能します。

PDO の場合:

$stmt = $pdo->prepare("SELECT * FROM fbusers WHERE user_id = :var");

$stmt->execute(array(':var'=>$var));

mysqli で:

$stmt = $dbConnection->prepare('SELECT * FROM fbusers WHERE user_id = ?');
$stmt->bind_param('s', $var);

$stmt->execute();

たぶん、この投稿が役立つでしょう。

于 2013-08-11T23:14:32.810 に答える