Lista de verificação para a Programação de Web Site Vulnerabilidades
-
09-06-2019 - |
Pergunta
Assistindo ENTÃO venha on-line tem sido uma escola para mim.Eu gostaria de fazer uma lista de vários vunerabilities e exploits usados contra sites da web, e o que técnicas de programação pode ser usado para defender contra eles.
- Quais são as categorias de vunerabilities?
- falhando site
- arrombando servidor
- arrombando outras pessoas inícios de sessão
- spam
- sockpuppeting, meatpuppeting
- etc...
- Que tipo de técnicas de programação defensiva?
- etc...
Solução
Do Open Web Application Security Project:
- O OWASP Top Ten vulnerabilidades (pdf)
- Para mais dolorosamente lista completa: Categoria:Vulnerabilidade
Os dez primeiros são:
- Cross-site scripting (XSS)
- Injeção de falhas (SQL injection, injeção de script)
- Arquivo malicioso execução
- Insecure direct object reference
- Cross-site request forgery (XSRF)
- O vazamento de informações e inadequado de tratamento de erro
- Quebrado de autenticação e gerenciamento de sessão
- Armazenamento criptográfico inseguro
- Inseguro de comunicações
- Falha ao restringir o acesso de URL
Outras dicas
Eu segundo o OWASP informações de como ser um recurso valioso.O seguinte pode ser de interesse, bem como, nomeadamente, os padrões de ataque:
Obviamente, teste de todos os campos de vulnerabilidades:
- SQL - escape de cadeias de caracteres (por exemplo,
mysql_real_escape_string
) - XSS
- HTML que está sendo impresso a partir de campos de entrada (um bom sinal de XSS normalmente)
- Outra coisa thatis não com o propósito específico de que o campo foi criado para
Procurar loops infinitos (a indireta coisa (se um monte de gente encontrou acidentalmente) que poderia matar um servidor realmente).
Algumas técnicas de prevenção:
XSS
Se estiver a tomar quaisquer parâmetros de entrada do usuário e já planeja a saída dele, se em um log ou uma página da web, higienizar-lo (faixa/a escapar qualquer coisa parecida com o HTML, cotações, javascript...) Se você imprimir o atual URI de uma página dentro de si próprio, higienizar!Até mesmo a impressão de PHP_SELF, por exemplo, não é seguro.Desinfetar!XSS reflexivo vem principalmente a partir unsanitized página de parâmetros.
Se você tomar qualquer entrada do usuário e salvá-lo ou imprimi-lo, avisá-los se nada perigoso/inválido é detectado e tê-los a re-entrada.um IDS é bom para a detecção (como o PHPIDS.) Em seguida, limpe antes do armazenamento e impressão.Em seguida, quando você imprimir algo de armazenamento, banco de dados, higienizar novamente!Entrada -> IDS/limpe -> armazenamento -> limpe -> saída
usar um scanner de código durante o desenvolvimento para ajudar a identificar potencialmente vulneráveis código.
XSRF
- Nunca use solicitação GET para destrutivo funcionalidade, i.é.apagar um post.Em vez disso, apenas aceitar solicitações POST.OBTER torna mais fácil para hackery.
- Verificar o de referência para se certificar de que o pedido de veio do seu site não trabalho.Não é difícil falsificar o de referência.
- O uso aleatório de hash como um sinal de que deve estar presente e válido em cada pedido, e que irá expirar depois de um tempo.Imprimir o token em um campo de formulário oculto e verificar-a no lado do servidor quando o formulário é publicado.Bandidos teriam que fornecer o token correto, para forjar um pedido, e se eles conseguiram obter o real token, ele precisa ser antes de expirar.
Injeção de SQL
- seu ORM ou banco de dados de abstração classe deve ter desinfecção de métodos de usá - los, sempre.Se você não estiver usando um ORM ou banco de dados abstração de classe...você deve ser.
Injeção de SQL
XSS (Cross Site Scripting) Ataques
Fácil de supervisionar e de fácil correcção:a desinfecção de dados recebidos do lado do cliente.Verificação de coisas tais como ';' pode ajudar na prevenção de código malicioso injetado em seu aplicativo.
G'day,
Uma boa ferramenta de análise estática de segurança é FlawFinder escrito por David Wheeler.Ele faz um bom trabalho à procura de várias falhas de segurança,
No entanto, ele não substitui a ter um estudioso alguém ler o seu código.Como Davi diz em sua página da web, "Um tolo com uma ferramenta ainda é um tolo!"
HTH.
felicidades, Rob
Você pode obter bons firefox addons para testar várias falhas e vulnerabilidades, como xss e sql injeções de Segurança Bússola.Pena que não funciona no firefox 3.0.Eu espero que esses serão atualizados em breve.