As 12 melhores práticas de segurança para PHP
Publicados: 2021-08-14Segurança é um tópico importante para todos os desenvolvedores de software, mas os desenvolvedores de PHP enfrentam alguns desafios únicos. Nesta postagem do blog, exploraremos as 12 melhores práticas de segurança para PHP, junto com como você pode implementá-las em seu código para ajudar a manter seu site seguro e protegido. Você sempre pode usar os profissionais da WebCitz para lidar com suas necessidades de programação PHP!
1. Atualize sua versão do PHP regularmente
Certifique-se de que sua versão do PHP esteja atualizada para minimizar o risco de vulnerabilidades de segurança. As correções geralmente corrigem bugs conhecidos, portanto, é importante que você aproveite as vantagens à medida que são lançadas.
Os hackers já começaram a explorar as últimas falhas do PHP. Aqueles de vocês com versões mais antigas estarão vulneráveis a suas intrusões, a menos que alterem sua configuração!
Você pode tentar a versão de pré-lançamento, mas os consultores de segurança alertam as empresas para evitar lançamentos de pré-lançamento de um novo software porque eles ainda podem ter falhas de segurança desconhecidas.

2. Não exponha dados confidenciais à Internet por meio de uma conexão não criptografada
Muitos sites ainda são vulneráveis porque seus desenvolvedores cometeram um erro ao expor as credenciais do banco de dados ou do sistema de arquivos na Internet pública usando um protocolo FTP desprotegido, conta de e-mail sem proteção SSL, etc.
Proteja esses arquivos e pastas criptografando-os antes de transmiti-los por qualquer conexão de rede que não seja criptografada com TLS / SSL.

3. Proteção contra ataques de injeção de SQL
Uma vulnerabilidade de injeção de SQL (Structured Query Language) ocorre quando a entrada do usuário é usada em uma consulta sem a validação adequada de seu tipo e intenção, o que compromete a confiabilidade dos resultados mostrados pelas consultas seguintes agrupadas a partir de strings enviadas.
Parece complicado, mas tudo que você precisa saber é que esse ataque pode expor seus dados de negócios e informações confidenciais.
A melhor maneira de se proteger contra ataques de injeção de SQL é protegendo a entrada - impedindo que os hackers injetem seu próprio código no site por meio de um campo de formulário ou break out box. Você deseja limpar quaisquer valores enviados pelo usuário antes de inseri-los em uma consulta SQL, da seguinte forma: $ input = filter_var ($ _ POST ['field'], FILTER_SANITIZE_STRING); if (! empty ($ input)) {echo “Você digitou:“. $ input. ”
“; } else {echo 'Por favor, digite algo';}. Observe como usamos empty () para garantir que não haja campos vazios.

4. Certifique-se de que você está armazenando dados confidenciais com segurança
Quando se trata de manter as senhas e informações de cartão de crédito seguras, não há margem para erros - as apostas são muito altas se um hacker conseguir acesso a esses arquivos ou bancos de dados contendo essas informações!
Para minimizar o risco de tal ataque acontecer, sempre use um algoritmo de criptografia forte ao armazenar dados confidenciais em seu banco de dados - de preferência um com criptografia AES de 128 bits, como SHA512_RSA.
Também há software disponível que torna o gerenciamento de bancos de dados criptografados mais fácil: MySQL Encryption Utilities (MEU). É importante observar que o MEU criptografa apenas campos de texto em bancos de dados MySQL, mas isso é bom o suficiente para a maioria dos casos de uso.

5. Não reutilize senhas
Reutilizar a mesma senha repetidamente é uma maneira segura de ter sua conta hackeada mais cedo ou mais tarde! Se você estiver usando as funções integradas do PHP para gerar strings de texto aleatórias (como rand ()), lembre-se de que elas têm vida curta, portanto, certifique-se de alterá-las a cada poucos meses, pelo menos.
Você deseja incluir letras maiúsculas, letras minúsculas, números e símbolos. Também não faz mal ter regras mais complexas em torno de quando uma nova string deve ser gerada também - como uma vez por semana ou após três tentativas de login com uma senha incorreta. Há até software disponível que pode fazer as contas para você!

6. Certifique-se de que seus aplicativos não sejam vulneráveis a ataques XSS
XSS (Cross-Site Scripting) é um ataque em que um código malicioso é injetado em um site e executado no navegador do visitante. Isso geralmente pode levar ao roubo de cookies ou sequestro de sessão, o que dá aos hackers acesso a todos os seus dados confidenciais sem ter que inserir suas próprias credenciais - como senhas ou números de cartão de crédito.

Esta vulnerabilidade pode ser explorada usando a validação de formulário JavaScript em páginas da web, de modo que qualquer entrada inserida pelos visitantes seja executada automaticamente por meio da atualização da página, exibindo hiperlinks com conteúdo ativo como imagens dentro deles e acrescentando parâmetros fornecidos pelo usuário a URLs dinâmicos como '? conta = 123 'etc.

7. Proteção contra ataques CSRF
CSRF (Cross-Site Request Forgery) é um tipo de ataque no qual comandos não autorizados são transmitidos do site do invasor para o seu aplicativo da web. Isso pode levar ao sequestro de sessão ou ao roubo de cookies, entre outras coisas.
Pode parecer difícil à primeira vista, mas tudo que você precisa fazer é fornecer um token extra que precisa de verificação para qualquer ação em que informações confidenciais possam ser expostas, como fazer login na conta de outro usuário - isso garantirá que não haja apenas um único ponto de vulnerabilidade e certifique-se de que contas automatizadas não sejam usadas em seu site.

8. Não se esqueça dos patches regulares!
Muitas vezes nem é preciso dizer, mas você deve manter-se atualizado com a correção de novas vulnerabilidades quando forem lançadas pelo seu provedor de sistema ou fornecedor de software.
Você nunca sabe qual falha de segurança outra pessoa encontrou, mas você não está ciente, e é melhor se manter informado do que ter seu site hackeado!

9. Não deixe o modo de depuração habilitado em ambientes de produção
O código de depuração freqüentemente tem recursos para habilitar coisas como edição remota de arquivos (usando fopen ()) e geração de consultas SQL brutas via mysql_query ().
Eles são ótimos se você deseja gerar rastreamentos de pilha completos quando ocorrem erros, mas abre grandes riscos de segurança em seu site de produção. Desabilitar essas funções e remover todas as instâncias em que elas são usadas vai economizar muito tempo quando se trata de corrigir bugs também!

10. Verifique o firewall para portas abertas
Pode ser tentador clicar em 'próximo' sempre que o Windows terminar de instalar as atualizações, mas não se esqueça de verificar quais serviços estão sendo executados e se tudo está configurado corretamente ou não - isso inclui atualizar firewalls também, se necessário.
Isso ajudará a manter os visitantes indesejados afastados se os hackers não conseguirem encontrar um ponto de entrada em seu sistema por meio do qual possam executar o ataque com a mesma facilidade.

11. Não use “admin” como nome da conta
Se você quiser se proteger de que outra pessoa acesse seu site adivinhando senhas, tente usar outro nome de usuário, como “admin” ou algo que não seja tão óbvio.
Se alguém tentar acessar sua conta, terá muito mais dificuldade em adivinhar a senha e também será mais difícil para os hackers explorar métodos de força bruta se você estiver usando um nome de usuário incomum!

12. Fique atualizado com novas vulnerabilidades
Pode parecer assustador no início, mas manter-se informado sobre as falhas de segurança que outras pessoas encontrarem ajudará a manter seu sistema seguro no caso de qualquer vazamento.
Manter o controle de todas essas atualizações pode ser difícil - felizmente, existem muitas ferramentas disponíveis agora que tornam essa tarefa mais fácil do que nunca. Uma dessas ferramentas é chamada de 'Suporte de Longo Prazo do Debian', que é projetada para suportar várias versões do sistema operacional e todos os tipos de software - incluindo servidores web com PHP.

Conclusão
Concluindo, essas são apenas algumas das melhores práticas de segurança que você pode aplicar ao seu site para mantê-lo seguro. Nem sempre é fácil, mas se você dedicar algum tempo para se esforçar, será recompensado com uma presença online com menor probabilidade de ser hackeada!
