gpt4 book ai didi

php - 不安全的登录脚本 - 如何保护

转载 作者:行者123 更新时间:2023-11-29 03:50:06 24 4
gpt4 key购买 nike

我正在调查一个可能被 sql 注入(inject)的项目(一位用户报告了它)。

这是登录脚本的一部分:

  $loginemail = $_POST['loginemail'];                 
$loginemail_sql = mysql_real_escape_string($loginemail);

$password = $_POST['loginpass'];
$password_sql = mysql_real_escape_string($password);

//get user data
$q = 'SELECT uid, full_name, score, status FROM users WHERE email="'.$loginemail.'" AND password="'.$password_sql.'" LIMIT 1';

我现在想知道这是否是可以注入(inject)的代码的一部分?是否存在 $loginemail 和 $password 被错误处理并且可能包含一些危险的“SQL 部分”的问题?

最佳答案

让我们看看:

Please, don't use mysql_* functions in new code. They are no longer maintained and are officially deprecated. See the red box? Learn about prepared statements instead, and use PDO or MySQLi - this article will help you decide which. If you choose PDO, here is a good tutorial.

对于初学者。

其次,您要转义 $loginemail,但使用未转义的版本(而不是 $loginmail_sql)。

第三,您的代码暗示您将密码按原样存储在数据库中。你不应该。如果攻击者接触到数据库,您的密码就会被泄露。您应该散列密码并将散列存储在那里。

关于php - 不安全的登录脚本 - 如何保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15533398/

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