• 【安全】web安全之SQL注入


    什么是SQL注入(SQL Injection)

      SQL注入是一种未将输入参数进行过滤,然后将SQL代码添加到输入参数中并传递到SQL服务器解析并执行达到预想之外的一种攻击手法。这种SQL注入可以欺骗服务器并且执行一些非法的SQL语句从而导致信息泄漏及其他安全问题。SQL注入是安全问题中最高发的问题。

     SQL注入产生原理

       1. 开发人员无法保障所有的输入都已经经过安全过滤,包括GET请求,POST请求,Cookie以及相应的HTTP头信息等。

       2. 攻击者在页面上恶意提交特殊字符,利用发送给SQL服务器的输入参数构造可执行的SQL代码。

       3. 后段数据库未做安全配置。

    SQL注入之万能密码

        

        在管理员登陆系统后台时候,一般严重当前用户都是痛殴一条查询用户是否存在的SQL,如下

        原验证登陆语句:

    SELECT * FROM user WHERE Username= '".$username."' AND Password= '".md5($password)."'

        但是在输入 1′ or 1=1 or ‘1’=’1 万能密码语句变为:

    SELECT * FROM user WHERE Username='1' OR 1=1 OR '1'='1' AND Password='EDFKGMZDFQWERRFGGG'

        被注入后的SQL语句都是返回true的,是可以登陆成功的。其实就是绕过数据库验证机制直接执行SQL语句然后结果永远返回有数据(如果数据表是有数据的情况)。

    防止SQL注入方法

      1. 永远不要信任用户的输入。对用户的输入进行强制校验,可以通过正则表达式,或限制长度,对单引号和 双"-"进行转换等。

      2. 尽量不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

        3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

      4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

      5. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

      6. sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。

    参考来源

      https://www.runoob.com/mysql/mysql-sql-injection.html

  • 相关阅读:
    Python 机器学习实战 —— 监督学习(上)
    Python 基础教程 —— Pandas 库常用方法实例说明
    Python 基础教程 —— 网络爬虫入门篇
    2个周末,历时100+小时,YourBatman新版Blog正式上线
    玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定
    谁再把IDEA的Project比作Eclipse的Workspace,我就跟谁急
    IntelliJ IDEA 20周岁啦,为期2天的周年庆活动对开发者免费开放
    数字跳动 jqjs
    js多项筛选功能
    调用本地摄像头实现拍照拍照截取照片 jqjs 、 vue
  • 原文地址:https://www.cnblogs.com/songgj/p/10946794.html
Copyright © 2020-2023  润新知