1. Insecure Direct Object Reference
Nao mostrar os ids reais do banco para os usuários (e nosso caso do vinho???)
chaves primárias, mudar para CreateUUID()
Ou usar hash(user_id) e fazer o mesmo para validar...
semelhante ao que eh feito com passwords encriptados no banco de dados
2. Cross Site Request Forgery
Com a vítima logada,
[img src="deleteUser.cfm?user_id=1"]
Por isso evitar ao máximo usar os ids reais
Nunca usar GET passando parametros pela url...
Re-autenticação em páginas sensíveis
Checar dados passados como parametros com o que tiver guardado em sessão se aplicavel.
3. Information Leakage and Improper error Handling
Não deixar aparecer erros de código para o usuário pois pode passar detalhes de funcionamento para um hacker. Pode incluir informações de código, arquivos, banco, etc...
Desabilitar Debugging em producao
Definir páginas 404
Usar [CFERROR]
Usar códigos para erros sensíveis ao invés de mensagens
Mostrar apenas "login failed" na autenticação, nada de "senha errada"...
4. Broken Authentication and Session Management
Loging Tampering, Brute Force
Session Hijacking
pelo menos 8 caracteres de password com letras e numeros
não enviar passwords por email
expirar passwords e não permitir repetições
Acesso restrito depois de tentativas falhas de login
Não ser muito restritivo para os usuários, fazer a primeira pelo menos.
Mudar e-mail, pedir senha
Usar SSL no login
Gerar nova session na autenticacao
usar J2EE Sessions (fecha sessao ao fechar o browser)
usar a UUID no CFToken
controlar o timeout de sessao
desabilitar cache do browser para essas areas protegidas
session cookies para HTTPOnly
checar variaveis CGI
usar funcoes de [CFLOGIN] e [CFNTAuthenticate]
5. Insecure Cryptographic Storage
O nome diz tudo.
Nunca gravar os passwords em clear text no banco
Usar pelo menos Hash()
6. Insecure communication
Usar SSL para informações sensíveis
Se for usar cartoes de crédito e tal no futuro tem que seguir um padrão (pelo menos nos EUA).
7. Failure to Restrict URL Access
Não usar gets para fazer ações
Checar permissoes em todos requests
Controlar o acesso por um lugar apenas (mais seguro com sessions que com cookies)
Se deixar arquivos do tipo .old .bak junto com os outros arquivos o browser pode retornar o código da aplicação!
bloquear acesso a arquivos que nao interessam ao usuario (.ini, xml, etc...)
8. CF Admin
disable flash remoting
acess to internal cooldfusion java comps
watch conf files for changes
request timeout = 10 segundos
checar "prefix serialized Json"
enable global script prot
setar max size do post
mudar client variables do registro
usar logs do OS tb
cf service as user
criar um privilegio de usuario para cada DSN
sandbox app
http://www.adobe.com/devnet/coldfusion/security.html
http://www.shlomygantz.com/blog
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário