これは、SESSIONSを使用した最初のログインシステムです。SQLインジェクションに安全かどうか疑問に思っていますか?
<?php
$username = $_POST['username'];
$password = $_POST['password'];
if(isset($username, $password)) {
if(get_magic_quotes_gpc()) {
$ousername = stripslashes($username);
$uusername = mysql_real_escape_string(stripslashes($username));
$opassword = stripslashes($_POST['password']);
} else {
$uusername = mysql_real_escape_string($username);
$opassword = $password;
}
$req = mysql_query('select password,id from users where username="'.$uusername.'"');
$dn = mysql_fetch_array($req);
if($dn['password']==$opassword and mysql_num_rows($req)>0)
{
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
echo 'Logged in m8';
} else {
$form = true;
$message = 'The username or password is incorrect.';
}
} else {
$form = true;
}
if($form)
{
if(isset($message)) {
echo '<div class="message">'.$message.'</div>';
}
?>
以前にハイスコアスクリプトでSQLインジェクションを取得していたので、単純なセッションのログインスクリプトにSQLインジェクションがあるかどうか疑問に思っていましたが、40%あります。通常、SQLインジェクションの原因は何ですか。ありがとう!