wow*_*wow 6 php mysql sql-injection
我使用SQL Inject Me Firefox插件扫描了我的登录脚本
根据测试结果,我的脚本很容易受到SQL注入攻击.以结果为例
Results:
Server Status Code: 302 Found
Tested value: 1' OR '1'='1
Server Status Code: 302 Found
Tested value: 1' OR '1'='1
Server Status Code: 302 Found
Tested value: 1 UNI/**/ON SELECT ALL FROM WHERE
Server Status Code: 302 Found
Tested value: %31%27%20%4F%52%20%27%31%27%3D%27%31
Run Code Online (Sandbox Code Playgroud)
我的剧本
check-login.php - 检查登录详细信息,这是代码.
$ email = clean($ _ POST ['username']); $ pass = clean($ _ POST ['password']); $ user ="select*from tbl_admin where admin ='$ email'and pass ='$ pass'";
//一些代码
$ _SESSION ['login_mes'] ="您已成功登录!"; 标题( "位置:admin.php的"); 出口();
} else {
$ _SESSION ['login_mes'] ="无效的电子邮件地址或密码,请再试一次."; 标题( "位置:login.php中"); 出口(); }
登录失败时出现问题.如果我删除了
} else {
$_SESSION['login_mes'] = "Invalid email address or password, please try again.";
header("Location:login.php");
exit();
}
Run Code Online (Sandbox Code Playgroud)
SQL Inject Me没有检测到故障以及如何修复此部分?
302是服务器说"我希望你去[其他地方]"(在这种情况下是login.php)的方式.这不是错误,而是完全正常的反应.特别是在你的情况下,在SQL注入尝试之后将用户发送到登录页面比让他进入更有意义(如果你问我).