- Conceitos básicos de segurança
- A idéia é pegar seu conhecimento de PHP e adicionar um pouco mais de preocupação quanto a segurança. Vamos passar por alguns pontos e exemplos onde meu desejo é dar um gatilho na cabeça das pessoas. Não necessáriamente explicar profundamente, mas plantar a curiosidade.- Vamos comentar segurança na vida, em desenvolvimento, na internet, no php e banco de
SEGURANÇA DE MANEIRA GERAL
- O que é segurança para cada um de nós? Segurança é vida
- Quando vc entra em um lugar vc procura a saída de emergência?
- Vc sai com o carro sem dar manutenção ?
- Você passa por uma rua escura ?
Computador
NO DESENVOLVIMENTO
- Um dos maiores problemas :: Preguiça
Porque? - Retrabalho
- Cansado de não conseguir / Segunda eu arrumo
- Devemos adotar uma Postura de defesa
- A gente costuma se preocupar sempre com o usuário logado, e muitas vezes esquece do usuário ilegítimo, vc não passa na tela de login, mas com conhecimento de urls internas acessa o produto.
- Falte de filtro de dados : Preguiça : Apenas no front, apenas no back, no banco de dados
- Limitar acessos
- Exibição de erros
- Interceptadores: Web é transmissão de informação, geralmente entre um servidor e um cliente
- Servidores mal configurados podem vazar informação
- HTTPS ::
- é o HTTP Seguro, um HTTP com algoritmos criptografados
- Criptografia
- Criptografias ::
SSL : é o mais usado :: 9 passos (Client Hello, Server Hello)
TLS : baseado no SSL
- Como configurar bem um servidor?
- Coisa de infra-estrutura?
Conhecer o local onde vc deixa seus filhos, seus cachorros. Ao menos o mínimo
- Usuário não pode executar o que bem entender no servidor
Qual o usuário que executa no servidor quando roda um site que você acessa?
Não é raro encontrar definições de servidores com root. /etc/passwd confira seu usuário.
- Bloquear detalher do Telnet, Bloquear Ping
- Conheça o seu servidor web, Apache, NGinX. Ambos tem uma estrutura para garantir segurança (logs, módulos, definição do local de arquivos) que é importante ser compreendida para se defender.
- PHP é seguro ? ::
- O que vocês acham?
Uma linguagem por si só não pode ser considerada segura ou insegura, apesar de algumas vulnerabilidade que as vezes escapam, A segurança de maneira geral depende de todo o projeto e do código do programa. Cautela em gastos com segurança, usabilidade. Não projetar a coisa de uma maneira absurda, onde seja impagável e também não complicar demais onde não seja possível usar ele.
- Estrutura do projeto ::
- Separar o que não pode ser visto de forma alguma, do que sempre será visualizado
- Arquivos que não são processados pelo servidor / TXT, INC, LOG Permissão nas pastas. A maioria dos frameworks tratam isso, mas … Zend 1 freela - Esconder URL para esconder estrutura (modrewrite, função para esconder .php pegar o request e tratar)
- Configurar bem um servidor PHP é checar sua Configuração do PHP
- Configurar bem um servidor PHP é checar sua Configuração do PHP- Display errors
- Log Errors ERROR REPORTING
- Formulários ::
- Problemas com formulários:
Upload de arquivos com vírus
XSS - exemplo script no admin
Injeção de código ou ainda SQL Injection (exemplo a frente)
- Pensar em variáveis externas com segurança (Tipagem, Filtrar valor)
- Validar tipos de arquivo em upload
- CAPTCHA, CAPTCHA Inverso (Menos recursos)
Onde existe PHP, existe banco de dados.. nõa necessáriamente mas quase sempre
- Coisa de DBA?
- Cuidados com Exposição dos dados de acesso.. falhas que mostram arquivos conf, inc
- Bloquear acesso por IP e fazer acesso via rede interna
SQL Injection
Quando um usuário não autorizado roda uma Query no seu banco de dados.
- Formulário de Login
CONCLUSÃO- “Tecnologia anti pirataria” - Ambiente 100% seguro
- Quem já se deparou com isso? O que garante esse 100% ?
- Deu certo ? Esse exemplo nos demonstra que devemos sempre nos atualizar, por mais que a gente gaste e invista em segurança ele deve sempre se atualizar.
Segurança nunca é assunto esgotado..
- Ler para estar atento a vulnerabilidade descobertas
- Oferecer prêmios para quebras de segurança
- Seguir padrões de segurança da informação (RFC 2196, ISO, PCI, OWASP)
- Espero que tenham aprendido algo aqui comigo, vou abrir para perguntas.. Obrigado