python web 数据库sql注入
2018-02-14 19:05
267 查看
大家都知道在数据库查询数据时,是被提示尽量少用字符串查询数据,而是用(?,?,?)的方式代替,这样就是为了防sql注入。
那什么是sql注入呢,我们下面就演示一下:
错误实例:sql = '''
SELECT
id,username,email
FROM
users
WHERE
username="{}" and password="{}"
'''.format(usr, pwd)数据库中有条数据,username = fei ,password = 1234 ,email = fei@qq.com
我们这里usr = fei,pwd = 1234
我们执行正确的数据,返回,如下:打开了数据库
查询到的数据 [(1, 'fei', 'a@b.c')]这样就查询到了需要的数据,但是我们用一条数据库不存在的数据,usr = fei11,pwd = 1234,如下:打开了数据库
查询到的数据 []数据为空,因为数据库根本没有这条数据!,但是,用sql注入的话,却可以轻松查到数据
sql注入,只需要改变一句话: usr = 'fei11" or "1"="1'我们再次查询:打开了数据库
查询到的数据 [(1, 'fei', 'a@b.c')]看见了吧,因为是字符串查询,所以用个 or 条件就可以轻松摆脱限制查询到数据。
现在,我们改成正确的代码: usr = 'fei11" or "1"="1'
# usr = 'fei222'
pwd = '1234'
sql = '''
SELECT
id,username,email
FROM
users
WHERE
username= ? and password= ?
'''
cursor = conn.execute(sql,(usr,pwd))
usr选择错误的且有注入,然后看结果:打开了数据库
查询到的数据 []查询到的为空,所以在数据库操作中尽量少用字符串插入,防止sql注入。
那什么是sql注入呢,我们下面就演示一下:
错误实例:sql = '''
SELECT
id,username,email
FROM
users
WHERE
username="{}" and password="{}"
'''.format(usr, pwd)数据库中有条数据,username = fei ,password = 1234 ,email = fei@qq.com
我们这里usr = fei,pwd = 1234
我们执行正确的数据,返回,如下:打开了数据库
查询到的数据 [(1, 'fei', 'a@b.c')]这样就查询到了需要的数据,但是我们用一条数据库不存在的数据,usr = fei11,pwd = 1234,如下:打开了数据库
查询到的数据 []数据为空,因为数据库根本没有这条数据!,但是,用sql注入的话,却可以轻松查到数据
sql注入,只需要改变一句话: usr = 'fei11" or "1"="1'我们再次查询:打开了数据库
查询到的数据 [(1, 'fei', 'a@b.c')]看见了吧,因为是字符串查询,所以用个 or 条件就可以轻松摆脱限制查询到数据。
现在,我们改成正确的代码: usr = 'fei11" or "1"="1'
# usr = 'fei222'
pwd = '1234'
sql = '''
SELECT
id,username,email
FROM
users
WHERE
username= ? and password= ?
'''
cursor = conn.execute(sql,(usr,pwd))
usr选择错误的且有注入,然后看结果:打开了数据库
查询到的数据 []查询到的为空,所以在数据库操作中尽量少用字符串插入,防止sql注入。
相关文章推荐
- Python防止sql注入
- 两个SQL语句判断数据库web是否分离
- 使用 sqlRest 将数据库转换为 REST 风格的 Web 服务(转)
- Python-web: Flask 应用、数据库查询数据、API接口
- 关于sql access excel以及在web.config中数据库连接字符串的写法
- VelocityWeb 1.3 发布,增加 SQL 分页支持!!支持多种数据库!
- WEB/SQL分离 利用ODBC注入
- (二)HTML5 - Web SQL 本地数据库
- sqlserver web.config配置数据库
- 前端数据库Web SQL Database
- Python3 sqlacodegen 根据已有数据库生成 ORM 使用的 model.py
- Python模拟Web Fetion给好友发送信息(数据库编程模块)
- HTML5 Web SQL 对数据库的操作
- 数据库被注入daxia123或cn.jxmmtv.com原因及解决办法.SQL语句执行即可
- HTML5本地数据库(WebSQL)
- Web.config中能否用Widows身份验证连接SQL 2005数据库
- SQL 数据库 批量删除 注入的脚本
- python使用SQL语句操作数据库中文乱码的解决
- 杜绝数据库SQL注入
- html5 本地数据库-Web SQL Database