如何防止PHP中的MSSQL注入?

如何防止PHP中的MSSQL注入?,php,sql,sql-server,forms,sql-injection,Php,Sql,Sql Server,Forms,Sql Injection,我知道这是一个被广泛关注的话题,但在谷歌搜索了针对PHP的MSSQL注入预防之后,我几乎什么也没找到 这是我能找到的最接近的,但答案似乎是针对MySQL,而不是MSSQL 我使用的PHP代码允许管理员通过表单输入登录到网站,以便访问后端。此代码是管理员在提交表单后登录的代码: <?php session_start(); if($_SERVER['REQUEST_METHOD'] == "POST") { $conn=mssql_connect('d','a','d'); mss

我知道这是一个被广泛关注的话题,但在谷歌搜索了针对PHP的MSSQL注入预防之后,我几乎什么也没找到

这是我能找到的最接近的,但答案似乎是针对
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");
  }
?>

您正在使用较旧的
mssql
扩展。没有。相反,现在有了
sqlsrv
,该函数集包括运行功能,这是运行查询的最安全方式。

您使用的是较旧的
mssql
扩展。没有。相反,现在有了
sqlsrv
,该函数集包括运行功能,这是运行查询的最安全方式。

步骤1-在用户输入到查询之前验证所有用户输入。步骤2-无论是否使用query parameters.SQL Injection,此代码都不会转义输入,即使是为了防止简单的SQL错误,其中您可能有一个包含引号字符的密码,也可以使用
break标题重定向后。步骤1-在用户输入到查询之前验证所有用户输入。步骤2-无论是否使用query parameters.SQL Injection,此代码都不会转义输入,即使是为了防止简单的SQL错误,其中您可能有一个包含引号字符的密码,也可以使用
break在标题重定向后。将密码和用户名限制为[A-Za-z0-9],在运行查询之前验证它们是否匹配(如果不匹配,则立即失败),并制定计划,在这会影响到其他地方之前切换到sqlsrv。将密码和用户名限制为[A-Za-z0-9],在运行查询之前验证它们是否匹配(如果他们不这样做,就会立即失败),并制定一个计划,在其他地方受到影响之前切换到sqlsrv。