如何使用SQLAlchemy库写出防防止sql注入的方法Raw SQL-WEB安全

如何使用SQLAlchemy库写出防SQL注入的Raw SQL_百度知道
如何使用SQLAlchemy库写出防SQL注入的Raw SQL
我有更好的答案
进行转换等1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式。 2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存龋 3.永远不要使用管理员权限的数据库连..,或限制长度;对单引号和 双&-&quot
采纳率:94%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何使用SQLAlchemy库写出防SQL注入的Raw SQL-WEB安全_百度知道
如何使用SQLAlchemy库写出防SQL注入的Raw SQL-WEB安全
我有更好的答案
sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具,最终达到欺骗服务器执行恶意的SQL命令。5.不要把机密信息直接存放。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.防护归纳一下,主要有以下几点:1.永远不要信任用户的输入。对用户的输入进行校验;对单引号和双&quot。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句,或限制长度,可以通过正则表达式。4。采用MDCSOFT-IPS可以有效的防御SQL注入;-&进行转换等。2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接,加密或者hash掉密码和敏感的信息。MDCSOFT SCAN等.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装6所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串
工程信息部总经理
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何使用SQLAlchemy库写出防SQL注入的Raw SQL-WEB安全_百度知道
如何使用SQLAlchemy库写出防SQL注入的Raw SQL-WEB安全
我有更好的答案
很多库提供了ORM接口能力,借助OO思想,数据库中的表被映射为Python的类,这个库简单易上手。其偏底层的特性为开发者提供灵活性的同时,也对不少新手写出的DB操作代码提出了考验,所有的DB操作都通过对象方法调用来实现,因为它只支持raw sql,容易导致sql注入攻击Python阵营有很多操作数据库的开源库(安装pip后,可以借助”pip search MySQL”查看可用的库列表),其中被使用最多的无疑是MySQLdb。鉴于此,类的对象代表数据表中的一行记录,通常会采用parameter bind的方式保证生成的parameterized SQL不存在被注入的风险,这些调用在底层被自动转换成SQL语句,在转换过程中
采纳率:84%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)sqlalchemy 或者 底层 mysqldb 如何防止 sql 注入??
15:40:35 +08:00 · 5521 次点击
12 回复 &| &直到
15:50:53 +08:00
& & 16:26:52 +08:00
不要直接拼装SQL语句,比如:
cmd = &select tab where id='%s'& % id
curs.execute(cmd)
如果要拼装,参数一定要用MySQLdb.escape_string()过一下。当然,下面的写法更省事:
cmd = &select people set name=%s where id=%s&
curs.execute(cmd, (name, id))
sqlalchemy没用过,不清楚了,应该也是默认过滤的,只要你不直接传SQL进来
& & 16:27:56 +08:00
第二个SQL语句不对:
cmd = &select tab where id='%s'&
curs.execute(cmd, (id,))
& & 16:34:57 +08:00
底层 mysqldb防注入这个想法挺前卫的,可以在mysql数据库之前做一层mysql-proxy,通过这个来对接收的sql语句做一次检查过滤,当然还能顺便把读写给做了;如果再底层到mysql服务器的话,估计要写存储过程了,这个也是要改程序的
& & 17:12:20 +08:00
@ `cmd = &select tab where id='%s'&` =& `cmd = &select tab where id=%s&`
& & 10:26:10 +08:00
Prestatement会好一些。
& & 10:56:44 +08:00
完美答案。谢谢。
& & 10:58:09 +08:00
跟数据库交互的api,还是有很多需要注意的,还是需要多学习
& & 11:14:42 +08:00
刚刚查了查,了解了,java中有的概念,一直python感觉可以学习java很多框架经验啊
& & 13:13:41 +08:00
倒不算Java概念,可以叫绑定参数还是什么的。
MySQL本身支持而已,Prepared Statement
各个语言的库基本都支持。
& & 14:26:48 +08:00
新技能。
我先看看。
THX:)
& & 14:08:40 +08:00
@ 对,解决安全问题的最佳方案还是在架构层面上,单纯依靠程序员的经验是容易出问题的
& & 15:50:53 +08:00
扯大了。
只是说说sql注入,防范方法也就是那些。
架构也是程序员写的,架构师也都是写积累的。
大家接触的项目,真的跟12306一样大吗?
能出了问题让解决了才开心。
& · & 2412 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 44ms · UTC 10:49 · PVG 18:49 · LAX 03:49 · JFK 06:49? Do have faith in what you're doing.}

我要回帖

更多关于 防止数据库注入 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信