作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我尝试设计一个非常简单且易受攻击的网站来演示 SQL 注入(inject)的工作原理,但是当我尝试使用
进行注入(inject)时');SELECT * FROM users;--
我收到一条错误消息,指出:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM users;--')' at line 1
源代码如下:
welcome1.html:
<form action="test.php" method="get">
<div><label for="firstname">First name:
<input type="text" name="firstname" id="firstname"/></label>
</div>
<div><label for="lastname">Last name:
<input type="text" name="lastname" id="lastname"/></label></div>
<div><label for="email">E-mail :
<input type="text" name="email" id="email"/></label></div>
<div><label for="password">password:
<input type="text" name="password" id="password"/></label></div>
<div><input type="submit" value="GO"/></div>
</form>
测试.php:
<html>
<body>
<?php
$con = @mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect ' . mysql_error());
}
mysql_select_db("accounts", $con);
$firstname = $_GET['firstname'];
$lastname = $_GET['lastname'];
$email = $_GET['email'];
$password = $_GET['password'];
$sql="INSERT INTO users(firstname, lastname, email, password)
VALUES
('$firstname','$lastname','$email','$password')";
if(!mysql_query("INSERT INTO users(firstname, lastname, email, password) VALUES ('$firstname','$lastname','$email','$password')"))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
</body>
</html>
在win10上的WAMP服务器3.0.6上运行当谈到 html/php 时,如果它不明显,我就是一个菜鸟谢谢
最佳答案
您尝试的 SQL 注入(inject)类型不适用于 mysql_query()
API。该 API 不支持多查询,因此您无法在一次调用 mysql_query()
中执行两个语句。 SQL 在分号 (;
) 后面包含任何内容都是语法错误。
它可以与 mysqli_multi_query() 一起使用。另请参阅http://php.net/manual/en/mysqli.quickstart.multiple-statement.php
还有PDO,IIRC在PDO::query()中默认支持多查询。
关于php - 本地主机上的 SQL 注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46133864/
我是一名优秀的程序员,十分优秀!