<分区>
我在 Intranet 站点上有以下 PHP 代码,我最近了解到一个 Firefox 插件 “SQL Inject Me”。出于好奇,我尝试在这个非常简单的网站(基本上是一个有管理员帐户的电话簿)上运行它。
测试返回了 51 #302 错误,但当我尝试它们时,我无法造成任何伤害,也无法访问(访问)数据库。
还有什么比这更能防止注入(inject)的吗?当我搜索时,他们都建议 PDO 准备语句,但这是使用它完成的。
PHP
include_once("inetcon.php");
session_start();
$uid = $_POST['uid'];
$pass = $_POST['pass'];
// This is what I've added after seeing the errors
$uid = mysql_real_escape_string($uid);
$pass = mysql_real_escape_string($pass);
$uid = str_replace("'","fag",$uid);
// end of block
$extract = $handler->prepare('SELECT * FROM net_users WHERE users_fname = ? and users_role = ? and users_active = "2"');
$extract->execute(array($uid, md5($pass)));
插件返回所有基本的,如:
Server Status Code: 302 Found
Tested value: 1' OR '1'='1
感谢您的帮助。