Profile

Vinícius Campitelli @vcampitelli


About Me

Bacharel em Ciência da Computação e desenvolvedor há 10 anos, sendo o PHP a principal linguagem em todo esse tempo. Entusiasta de boas práticas de codificação, arquitetura de sistemas e segurança da informação. Sou apaixonado por educação, sendo sócio-fundador do Curseduca, uma startup de e-learning.

Proposals

Boas práticas na prática

Para garantirmos a melhor arquitetura de código possível, precisamos aplicar diversos conceitos de qualidade que são difíceis de serem aplicados na prática. E isso afeta muito a manutenibilidade de nosso sistema.


Iremos ver exemplos reais de como utilizar Object Calisthenics e SOLID (ao invés de dicas abstratas e difíceis de se aplicarem no mundo prático), além das ferramentas PHPCS e PHPMD para termos códigos mais limpos e evitarmos problemas futuros.

Criando mecanismos de autenticação seguros

Uma das partes mais básicas de um sistema é seu processo de login. E por ser algo que não agrega valor direto ao negócio, acabamos não gastando o tempo necessário para criar um fluxo realmente seguro, fazendo com que ele se torne o principal vetor de ataques de nossa aplicação.


Iremos aprender como criar mecanismos seguros de autenticação, utilizando CSRF de forma correta, CAPTCHA, duplo fator de autenticação, prevenção à enumeração de usuários e outras técnias para dificultar ataques. Veremos também diversas dicas de como implementar as arriscadas (mas muitas vezes necessárias) funções "Permanecer logado" e "Esqueci a senha".

Segurança além do óbvio

Como cerca de 80% dos web sites rodam PHP, as aplicações nessa linguagem são alvos corriqueiros de ataques. Além disso, por mais que o PHP 7 corrigiu muitos problemas de segurança, ainda precisamos tomar cuidado com técnicas de defesa não tão tradicionais.


Veremos como aplicar as melhores medidas para protegermos nossos sistemas, trazendo questões além dos itens básicos do OWASP Top Ten, já que a maioria dos exemplos encontrados muitas vezes são resolvidos pelos próprios frameworks.


Veremos então: como garantir um login sem enumeração de usuários, gerenciamento e codificação de sessões, melhores práticas de validação de entradas, Runtime Application Self-Protection e como armazenar e ter uma forte política de senhas.