如果我收到错误 403,我的网站是否容易受到 SQL 注入攻击?
Is my site vulnerable to SQL injections if I get error 403?
我有一个登录表单,只是为了测试我尝试填写 "select * from accounts where username = test" 然后我按回车键看看会发生什么。我被重定向到此页面:
我应该担心 SQL 注射吗?或者这是正常反应?
编辑:此特定案例的 PHP 代码。
$sql = "SELECT * FROM accounts WHERE Useremail=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql))
{
echo "There was an error whilst trying to connect to the database. Please re-submit your password reset request.";
exit();
}
else
{
mysqli_stmt_bind_param($stmt, "s", $userEmail);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if (!$row = mysqli_fetch_assoc($result))
{
header("Location: /reset-password.php?reset=fail");
exit();
}
}
403 是未授权请求的标准 http 状态代码。看来至少在这一次测试中,该网站做了正确的事情。
这并不能保证它没有 SQL 注入漏洞。有句老话:
"Testing shows the presence of bugs, not their absence."
换句话说,可能有另一种方法可以使用 SQL 注入来利用此站点,而不是您测试过的那个。
您应该始终关注 SQL 注入漏洞并寻求使用安全编程技术来防止它们。
P.S.: 我希望你有权在这个网站上做渗透测试。在一些国家,未经许可擅自这样做是一种犯罪行为,人们因此受到起诉。我建议您避免对漏洞进行此类测试,除非它是您自己的站点,或者您已被其所有者专门雇用进行此类测试。
我有一个登录表单,只是为了测试我尝试填写 "select * from accounts where username = test" 然后我按回车键看看会发生什么。我被重定向到此页面:
我应该担心 SQL 注射吗?或者这是正常反应?
编辑:此特定案例的 PHP 代码。
$sql = "SELECT * FROM accounts WHERE Useremail=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql))
{
echo "There was an error whilst trying to connect to the database. Please re-submit your password reset request.";
exit();
}
else
{
mysqli_stmt_bind_param($stmt, "s", $userEmail);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if (!$row = mysqli_fetch_assoc($result))
{
header("Location: /reset-password.php?reset=fail");
exit();
}
}
403 是未授权请求的标准 http 状态代码。看来至少在这一次测试中,该网站做了正确的事情。
这并不能保证它没有 SQL 注入漏洞。有句老话:
"Testing shows the presence of bugs, not their absence."
换句话说,可能有另一种方法可以使用 SQL 注入来利用此站点,而不是您测试过的那个。
您应该始终关注 SQL 注入漏洞并寻求使用安全编程技术来防止它们。
P.S.: 我希望你有权在这个网站上做渗透测试。在一些国家,未经许可擅自这样做是一种犯罪行为,人们因此受到起诉。我建议您避免对漏洞进行此类测试,除非它是您自己的站点,或者您已被其所有者专门雇用进行此类测试。