zoukankan      html  css  js  c++  java
  • mysql防注入攻击解决办法

    • magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。在magic_quotes_gpc=On的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线()与 NUL(NULL 字符)等字符都会被加上反斜线。这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义。

    • stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。

    • mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

    下列字符受影响:

        x00
        
    
        
    
        
        '
        "
        x1a
    

    如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。

    防止注入攻击:

    <?php
    function check_input($value)
    {
    // 去除斜杠
    if (get_magic_quotes_gpc())
      {
      $value = stripslashes($value);
      }
    // 如果不是数字则加引号
    if (!is_numeric($value))
      {
      $value = "'" . mysql_real_escape_string($value) . "'";
      }
    return $value;
    }
    
    $con = mysql_connect("localhost", "hello", "321");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    // 进行安全的 SQL
    $user = check_input($_POST['user']);
    $pwd = check_input($_POST['pwd']);
    $sql = "SELECT * FROM users WHERE
    user=$user AND password=$pwd";
    
    mysql_query($sql);
    
    mysql_close($con);
    ?>
  • 相关阅读:
    安卓学习12
    安卓学习11
    安卓学习10
    安卓学习9
    Python3之json&pickle模块
    Mysql之基础sql语句
    Django模型层之单表操作
    创建Django项目与应用的两个命令
    windows命令行切换目录
    Django视图层之请求对象(request)和响应对象(HttpResponse)
  • 原文地址:https://www.cnblogs.com/zjunet/p/4559906.html
Copyright © 2011-2022 走看看