我知道这是一个被广泛报道的主题,但在搜索谷歌的PHP for MSSQL注入预防后,我发现几乎没有。
这是我能找到的最接近的 answer ,但答案似乎是MySQL
而不是MSSQL
。
我正在使用的PHP代码允许管理员通过表单输入登录到网站以访问后端。此代码是在提交表单后记录管理员的代码:
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == "POST") {
$conn=mssql_connect('d','a','d');
mssql_select_db('d',$conn);
if(! $conn )
{
die('Could not connect: ' . mssql_get_last_message());
}
$username = ($_POST['username']);
$password = ($_POST['password']);
$result = mssql_query("SELECT * FROM back_end WHERE username='$username' AND
password='$password'");
if(mssql_num_rows($result) > 0) {
$_SESSION['is_logged_in'] = 1;
$_SESSION['backname'] = $username;
}
}
if(!isset($_SESSION['is_logged_in'])) {
header("location:logingbm.php");
echo "<script>alert('Incorrect log-in information!');</script>";
} else {
header("location:../d/index.php");
}
?>
如果有人能给我一些提示,我应该提出哪些代码来防止恶意注入,我们将不胜感激。谢谢你的帮助。
答案 0 :(得分:5)
您正在使用较旧的mssql
扩展程序。它不是longer available as of PHP 5.3。相反,现在有sqlsrv
,该功能集包括运行prepared statements的功能,这是运行查询的最安全方式。