zoukankan      html  css  js  c++  java
  • sql注入的一点学习(待更新)

    什么是sql注入???

    通过把SQL命令插入到Web表单递交输入域名页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

    假如数据库中有一张商品表goods,存放多条商品信息

    当执行sql语句

    select * from goods where id = 1;

    查询结果当然为一条数据

    当执行sql语句

    select * from goods where id = 1 or  6;

    这时候的执行结果会是什么呢???

    结果是所有的商品信息数据都会被查询出来。

    这只是查询操作,如果是被人恶意执行删除操作,那就凉凉了

    当我们python代码中执行连接数据库,获取cursor对象来执行sql语句的时候,不要以拼接字符串的形式拼接sql语句,例如根据用户输入的id来拼接sql语句

    sql  =  """select  *  from  goods  where id = %s;"""%id

    如何安全的执行sql语句呢???

    sql = """select  *  from  goods  where id = %s;"""

    在游标对象执行sql语句的时候传参

    游标对象.execute(sql语句,(参数...))  

    如何防止sql注入???

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

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

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

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

    5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,把异常信息存放在独立的表中。

  • 相关阅读:
    SharePoint Framework (SPFx) 开发入门教程
    SharePoint 2013 Designer 入门教程
    SharePoint 2013 开发教程
    SharePoint 2013 入门教程
    SharePoint Online 部署SPFx Web部件
    SharePoint Online SPFx Web部件绑定数据
    SharePoint Online 创建SPFx客户端Web部件
    SharePoint Online 配置框架(SPFx)开发环境
    SharePoint Online 创建应用程序目录
    SharePoint Online 启用 IRM
  • 原文地址:https://www.cnblogs.com/ajiuna/p/9349673.html
Copyright © 2011-2022 走看看