1、ORM注入概述
ORM 是对象关系映射(Object Relational Mapping)的缩写。是写程序时的一种写法,以前写程序查数据库的时候都是代码加 sql 语句写到一起,程序庞大后就很难管理维护。后来就把程序和 sql 语句分开了。同时 ORM 把 sql 的写法进行了封装,程序调用更为方便,能让程序员真正的去关注逻辑层代码,去面向对象编程。
ORM注入是使用SQL注入来违反一个ORM生成的数据访问对象模型。从一个测试人员的角度来看,这种攻击几乎与SQL注入攻击相同。然而,这个漏洞存在于通过ORM工具产生的代码里。
ORM是一个对象关系映射工具。它是用来加快面向对象开发软件应用程序的数据访问层内,包括Web应用程序的工具。使用ORM工具的好处包括快速生成一个对象层,以及关联到一个关系数据库中,这些对象的标准化代码模板通常有一套安全函数来防止SQL注入攻击。
ORM生成的对象可以使用SQL或在某些情况下使用SQL的变体对数据库执行CRUD(创建,读取,更新,删除)操作。然而,如果采用允许有害的输入参数访问的方法,对于一个web应用程序使用ORM生成的对象可能容易受到SQL注入攻击。
ORM工具包括适用于Java的Hibernate,适用于.NET的NHibernate,适用于Ruby on Rails的ActiveRecord,适用于