XSS和XSS中的通用语法SQLI

时间:2013-01-17 23:05:22

标签: php xss sql-injection protection

我正在创建一个函数,它将检查字符串(一旦字符串通过函数发送),用于SQLI和XSS攻击中使用的常用语法;问题是,我只知道一些..但不是全部,所以我想知道SO上的人是否能够给我一些关于这些类型攻击的常见用途的信息/语法。

我的代码如下:

function CleanInput ($Arg)
{
    foreach (array("@", "<", ">", "'", "|", "/", "\\", "-", "+", "-", "_", "'") as $value)
    {
        $check = strpos($Arg, $value);
        if ($check !== false)
        {
            return true;
        }
    }
    return false;
}

1 个答案:

答案 0 :(得分:1)

输入本身并非“干净”或“不干净”。像对待它一样对待它(就像你在这里做的那样)是一个快速跟踪奇怪的功能问题和安全漏洞。

相反,请始终牢记您发送数据的位置(无论是否为用户输入!),并确保以适合输出的方式修改数据。例如:

  • 将数据发送到SQL时,如果可能,请使用绑定参数。如果没有,请在将数据插入查询之前应用SQL转义。
  • 输出HTML时,请在数据与其他HTML结合使用时使用适当的HTML转义功能(如htmlspecialchars())。
  • 生成JSON时,请使用json_encode()。没有例外。
  • 创建shell命令时,使用shell转义函数包含非常量数据。

一般情况下:在输出时转义数据,而不是输入。