Quero tornar meus session tokens mais difíceis de se adivinhar e mais únicos.
Solução:
Na maioria das minhas aplicações Web, eu uso sessões em algum ponto
para armazenar informações tais como login. Eu faço isso utilizando
Session tokens de forma que o server possa identificar quem é quem.
Um ataque SQL Injection por um hacker malicioso pode causar estragos em um banco de dados e expôr informações confidenciais. Uma simples declaração tal como: SELECT * FROM tbl_user WHERE userId = #URL.userId# poderia ser facilmente alterada para: SELECT * FROM tbl_user WHERE userId = 1;DROP TABLE tbl_user Isso equivale a um fracasso de proporções Titanic, perdendo apenas para a perda do Flamengo num jogo Fla-Flu! (nota do tradutor)
Solução:
ColdFusion oferece um par de soluções muito simples para previnir que isso aconteça. A primeira é definir o SQL permitido no datasource e usar a tag<cfqueryparam> em todas as suas queries!
Neste post resolvi disponibilizar algo para ajudar ainda mais as ações de segurança nas aplicações com relação ao ponto de entrada de dados. Dentro do CF, a combinação das tags CFQUERY e CFQUERYPARAM ajudam e muito a evitar ataques do tipo SQL Injection, porém elas sozinha minimizam a possibilidade e não neutralizam.
Para isso criei um conjunto de três funcções para detectar se no texto existe ou não intenções de injection. A utilização é bem simples, basta chamar a função hasAtack() antes de executar seu sql. O funcionamento é uma combinação da busca em cima dos scoopos CGI, Url, Form, Cookie e Arguments localizando palavras típicas de ação de injection. Recomendo colocar essa funcionalidade no seu Application.cfc ou cfm para poder chamade de qualquer página o teste.
Se você esqueceu a senha para o Administrator ColdFusion MX, navegue até a pasta cfusionmx7/lib e encontre o arquivo chamado neo-security.xml. Crie uma cópia deste arquivo. Em seguida, abra o original e encontre esse nó no XML:
Comentários Recentes