考虑到一个项目将由多个开发人员工作并且将不断更新和维护,考虑到可读性和安全性,以下两个代码中的哪一个可以被认为是 PHP 的最佳实践?如果我们从性能上讲,第二个选项可能会好一点,但是有一些方法可以解决这一点。
选项1
$user = $_POST['user'];
$pass = $_POST['pass'];
// Prevent SQL Injection and XSS
$user = anti_injection($user);
$pass = anti_injection($pass);
if(strlen($user) <= 8 && strlen($pass) <= 12)
{
// SQL query
$sql = "SELECT id
FROM users
WHERE username = '$user' AND password = '$pass';";
}
选项 2
// Retrieve POST variables and prevent SQL Injection and XSS
$_POST['user'] = anti_injection($_POST['user']);
$_POST['pass'] = anti_injection($_POST['pass']);
if(strlen($_POST['user']) <= 8 && strlen($_POST['pass']) <= 12)
{
// SQL query
$sql = "SELECT id
FROM users
WHERE username = '" . $_POST['user']. "' AND password = '" . $_POST['pass'] . "';";
}
编辑 1
我没有使用 MySQL,我的数据库是 PostgreSQL