试图创建一个mysql注入证明脚本

时间:2010-03-02 01:29:04

标签: php mysql security

我只是一个初学者,我的代码有什么问题,我正在尝试对此进行试验,以便我要创建的网页不会受到mysql注入的攻击。这样做的正确方法是什么:

<?php



$host="localhost";
$username="root";
$password="";
$db_name="testing";
$tbl="hospital";

$connection=mysql_connect($host, $username, $password) or die("cannot connect!");
mysql_select_db($db_name, $connection) or die("cannot select db!");


     $LASTNAME = $_POST[lname];
     $FIRSTNAME = $_POST[fname];



     $FIRSTNAME=(isset($_POST['fname']||trim($_POST['fname'])=="")?die('Error:Enter Firstname!')
                                                                       mysql_escape_string(trim($_POST['fname']));




      $sqlque="INSERT INTO hospital (LASTNAME, FIRSTNAME)
      VALUES ('$LASTNAME',  '$FIRSTNAME')"; 






if (!mysql_query($sqlque,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "<script>alert('Record successfully added!')</script>";



mysql_close($con)


?>

这是错误,请帮助,谢谢:

Parse error: parse error, expecting `','' or `')'' in C:\wamp\www\sql injection check\aisaction.php on line 20

3 个答案:

答案 0 :(得分:7)

答案 1 :(得分:1)

死后遗失:('错误:输入名字!')

答案 2 :(得分:1)

只是针对遇到此问题的任何人的更新。现在首选的方法是使用PDO http://php.net/manual/en/book.pdo.php和准备好的语句。

具体而言,PHP扩展要么不再支持,要么很快就不会在PHP中得到支持。 PDO也比MySQL或MySQLi更便携

$db = new PDO(/*connection info*/);
$sql = "SELECT * FROM tbl WHERE condition1 = :param1 AND condition2 = :param2";

$stmt = $db->prepare($sql);
$stmt->bindValue(":param1", 10);
$stmt->bindValue(":param2", "banana");

$stmt->execute();