sql注入有哪几种方式 ORM框架能自动防止SQL注入攻击吗?
ORM框架能自动防止SQL注入攻击吗?
ORM,接口封装在ORM机制中,不对外公开,这从理论上防止了SQL注入。
但是,外部世界不可能在访问您的网站时直接使用您的对象界面。换句话说,您需要提供从在线协议到对象接口的转换。
此转换的解码/编码(或序列化/反序列化或解析)也会受到格式错误数据的攻击。
您只需将名为SQL注入的特定攻击转化为对自定义接口格式的攻击。
因此,对于在线数据,避免攻击的方法是最小化格式的复杂性和功能(从这个角度来看,您的自定义格式应该低于SQL的复杂性和功能,这是很好的),并尝试使用正式方法来定义和解析格式(例如,使用实数BNF和解析来解析纯文本数据比使用SQL(盲替换或regexp解析具有较低的攻击威胁)要好。在某些情况下,最好使用预编译的SQL来接受参数,因为此时的参数不能修改ast。
因此,这是一个综合考虑。例如,您的ORM可能非常重,减少威胁的能力可能不如简单地使用预编译的SQL好。
所以不能
在TP框架中,使用原生SQL有什么弊端?
TP的查询语法支持跨数据库。如果它是本机的,则可能无法支持跨数据库。另一件事是你需要检查安全过滤。优点是可以从性能方面节省SQL汇编的成本。
TP:ThinkPHP是一个快速、兼容且简单的轻量级国内PHP开发框架。它诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP。它是根据apache2开源协议发布的。对struts结构进行了移植和改进。同时,还借鉴了国外许多优秀的框架和模式,采用面向对象的开发结构和MVC模式,将struts的思想与taglib(taglibrary)、ror的ORM映射和activerecord模式相结合。
本机SQL:可由数据库直接执行的SQL语句,如Oracle、MSSQL、mysql、DB2等
非本机SQL:一般指根据指定的程序规则自动生成的SQL,如最经典的LINQ to SQL
sql注入有哪几种方式 预编译sql依然有注入 sql注入url
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。