我正在使用其他人制作的数据库(并且我没有真正授权更改它)。但是,当我查看数据库中的存储过程时,我注意到以下过程:
DELIMITER $$
CREATE PROCEDURE `logIn`(userName varChar(50), userPass varChar(50))
BEGIN
declare userID int;
SELECT
u.userID INTO userID
FROM
users u
WHERE
u.userName=userName
AND u.userPassword=MD5(userPass);
IF (IFNULL(uID,-1) > 0) THEN
select 1 as outMsg;
ELSE
select 0 as outMsg;
END IF;
END$$
对应的表users
具有三列userID INT
:userName VARCHAR(50)
和userPassword VARCHAR(50)
。
由于我对此不太擅长,有人可以让我知道是否需要对此类函数的输入进行清理以不允许任何 SQL 注入,如果不是 - 为什么?一般的经验法则将不胜感激。
PS 此函数将在表单提交时从 JS 脚本调用。