zoukankan      html  css  js  c++  java
  • python与sql注入

    一、什么是sql注入:
        SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
        根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
    
    二、python中解决sql注入
    python中存在sql注入风险的sql语句
    错误用法:
     sql = "select id,name from user_table where id = %s and name = %s" % (id, name)
     cur.execute(sql)
    
    正确用法:
    
    1.  execute() 函数本身有接受sql语句参数位的,可以通过python自身的函数处理sql注入问题。
     args = (id, type)
     cur.execute('select id,name from user_table where id = %s and name = %s', args )
    
    2.  rs=c.execute("select * from log where f_UserName=:usr",{"usr":"jetz"})
    3.  rs=c.execute("select * from log where f_UserName=:1 ",["jetz"])
    使用如此参数带入方式,python会自动过滤args中的特殊字符,制止SQL注入的产生。
    

      

  • 相关阅读:
    HTTP处理程序介绍
    c# Enum获取name,value和description
    如何成为优秀的软件人才
    关于系统设计分层
    从DLL中加载启动窗体
    摩斯密码
    休息下
    关于博文转载
    整合TextBox与Label 创建新控件EFLabelText
    ProC连接Oracle
  • 原文地址:https://www.cnblogs.com/django-start/p/9169414.html
Copyright © 2011-2022 走看看