1

私はこの PHP を持っています。SQL インジェクションやセキュリティの脆弱性から安全であることを確認したいだけです。

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');
$request = mysql_real_escape_string($_REQUEST['email_address']);

$query = mysql_query("SELECT * FROM mmh_user_info WHERE email_address ='$request'");
$result = mysql_num_rows($query);
if ($result == 0){
$valid = 'true';}
else{
$valid = 'false';
}
echo $valid;
?> 

私はまだ PHP の初心者です。機能強化や編集は大歓迎です。

4

2 に答える 2

4

PHP5 で標準になりつつある PDO を利用することをお勧めします。

$sth = $dbh->prepare("SELECT * FROM mmh_user_info WHERE email_address = ?");
$sth->execute(array($_REQUEST['email_address']));
$red = $sth->fetchAll();
于 2013-05-16T23:18:18.753 に答える
1

ユーザーによるこの素晴らしい回答に記載されているポイントには、 $_REQUEST の代わりに $_POST を使用しますPascal MARTIN

$_REQUESTには、デフォルトで$_GET$_POSTおよびの内容が含まれます$_COOKIE

ただし、これはデフォルトにすぎず、に依存しvariables_orderます。Cookieを使用するかどうかわかりません。

選択しなければならない場合、おそらく を使用せず、アプリケーションが何をすべきか(つまり、両方ではなくどちらか一方) に応じて、または$_REQUESTを選択します: 一般的に言えば:$_GET$_POST

  • 誰かがアプリケーションから$_GETデータを要求しているときに使用する必要があります。
  • また$_POST、誰かがアプリケーションにデータをプッシュ(挿入または更新、または削除)するときに使用する必要があります。

いずれにせよ、パフォーマンスに関して大きな違いはありません。スクリプトの残りの部分と比較すると、違いはごくわずかです。

于 2013-05-16T23:26:02.477 に答える