- Wagner Elias – Think Security First - http://wagnerelias.com -

Mapeamento de Objeto Relacional e Segurança de Aplicações WEB

Posted By Elias Wagner On 7 07America/Denver May, 2008 @ 5:33 pm In Security Developer | 1 Comment

Ultimamente tenho mexido bastante com frameworks que utilizam de ORM (Object-Relational Mapping) como, Rails (framework para linguagem Ruby) e Cake-php (port do Rails para php).

Eu tinha um certo ceticismo sobre estes frameworks que fazem muita coisa por baixo dos panos, mas ao mexer um pouco mais e entender melhor, cheguei a conclusão que eles não limitam/amarram em nada o desenvolvimento das aplicações e que a maior abstração é referente a manipulação dos dados do banco de dados.

E analisando um pouco mais, cheguei a conclusão que ORM pode colaborar e muito com a segurança das aplicações WEB. Um problema sério no desenvolvimento WEB são os famosos Injection Flaws (Cross Site Scripting, SQL Injection) e isso é devido o despreparo de muitos desenvolvedores que acabam manipulando dados nas aplicações como um chipanzé autista. Quem nunca viu aquelas concatenações horríveis de strings SQL?

Quando estes desenvolvedores despreparados usam ORM eles estão trazendo menos riscos a suas aplicações, pois o ORM faz tudo para eles.

Mas o que é ORM?

ORM é uma biblioteca que transforma dados de bancos relacionais em classes de manipulação de dados de maneira transparente ao usuário. Além de preservar as características de orientação a objetos, o desenvolvedor não precisa fazer nenhuma Query, String de conexão, tudo é feito pelo framework de ORM.

Existem frameworks de ORM para diversas linguagems como, Java (Hibernate [1], Cayenne [2]), .Net (NHibernate [3]), além dos já citados.

Um problema dos ORM é o volume de dados gerados, em alguns casos a performance é bastante prejudicada. Mas a coisa vem mudando, o Rails por exemplo implementou uma mudança que elimina muito o volume de dados em cada consulta ao banco. [4]

ORM é um tema bem interessante, quem quiser saber mais consulte: Mapping Objects to Relational Databases: O/R Mapping In Detail [5]


1 Comment (Open | Close)

1 Comment To "Mapeamento de Objeto Relacional e Segurança de Aplicações WEB"

#1 Comment By Marcelo M. Fleury On 9 09America/Denver May, 2008 @ 9:54 am

Bem comentado Wagner… gostaria de acrescentar o symfony como boa opção de framework php… utiliza o propel(PDO ou creole) ou doctrine(PDO) para orm, abraços!

[6] [6]

Article printed from Wagner Elias – Think Security First: http://wagnerelias.com

URL to article: http://wagnerelias.com/2008/05/07/mapeamento-de-objeto-relacional-e-seguranca-de-aplicacoes-web/

URLs in this post:

[1] Hibernate: http://www.hibernate.org/

[2] Cayenne: http://cayenne.apache.org/

[3] NHibernate: http://www.hibernate.org/343.html

[4] o Rails por exemplo implementou uma mudança que elimina muito o volume de dados em cada consulta ao banco.: http://www.nomedojogo.com/2008/02/02/edge-rails-uma-nova-estrategia-para-o-eager-loading/

[5] Mapping Objects to Relational Databases: O/R Mapping In Detail: http://www.agiledata.org/essays/mappingObjects.html

[6] : #

Copyright © 2007 Wagner Elias - Think Security First | BCP, BIA, DRP, Security Assessment, Risk Assessment, Security Developer. All rights reserved.