2017-02-04 12 views
1

PHPコードを作成し、データベースMySqlを使用しています。 パラメータのバインドについては不思議ですが、フィールド(pw)を除いた例を示します。パラメータバインディングをより安全にする(PDO)

ユーザーがフォームを経由してユーザ名を送信し、それが

$username = $_POST["username"]; 

POST

として来て、その後のログインに使用されている場合。

$query = "SELECT * FROM users WHERE username = :username"; 

その後、

$stmt = $conn->prepare($query); 
$stmt->bindParam(":username", $username); 

は、任意の保護が行われていますか?私は、POST変数を直接使用するのと比べて意味します。

$stmt->bindParam(":username", $username); 

または

$stmt->bindParam(":username", $_POST['username']); 

は、彼らの両方が同じ値を含んでいて、パラメータにそれらを結合することはまったく同じです:

挨拶

答えて

0

は、それはあなたが使用するかどうか違いはありません。

保護がプリペアドステートメントではなく、それをバインドする変数の選択とパラメータを結合から来ています。

+0

はい、私はそれは、生のSQLクエリを使用して代わりの結合から任意の差延を作るん、ということを意味しました。 –

+0

はい、間違いありません。 http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?s=2|37.5876を参照してください。 – Barmar

関連する問題