考虑以下查询,无论用户名无效还是密码错误,它都会返回相同的输出(只是一个示例,我知道 SQL 注入):
CREATE TABLE users (
username VARCHAR(64),
password CHAR(40)
);
SELECT FROM users
WHERE username = '{$username}'
AND password = sha1('{$password}');
我想添加一个盐字段,但不是在应用程序中检索它并连接,我更希望 MySQL 在引擎中进行连接:
CREATE TABLE users (
username VARCHAR(64),
salt VARCHAR(128),
password CHAR(40)
);
SELECT FROM users
WHERE username = '{$username}'
AND password = sha1(CONCAT(<salt_field>, '{$password}'));
我会用什么代替<salt_field>
?