Tunning de segurança no PHP

O PHP é uma das linguagens web mais populares. E por se uma das mais populares cresce a cada ano a quantidade de grupos querendo atacar este tipo de alvo.
Neste pequeno tutorial vou dar algumas dicas de tunning no PHP para melhorar um pouco a segurança.

php.ini

Vamos abrir o PHP.ini e encontrar as seguintes linhas:

disable_functions
allow_url_fopen
allow_url_include

encontrou ? Ok agora vamos modificar as linhas para que fique da seguinte forma:

disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
allow_url_fopen=Off
allow_url_include=Off

Reiniciei o servidor Apache ou NGINX

Acesso a escrita

Os diretórios com permissão para escrita, geralmente aqueles que você usa para upload. Adicione o seguinte .htacess neste diretório de upload


deny from all

RewriteEngine Off

* Isto irá fazer com que o diretório onde você faz upload não possibilita a execução de scripts PHP. Lembre-se de verificar quais os mimetypes foram configurador no seu httpd.conf para que você possa bloquear eles também no htacess.

MySQL

Deixe o MySQL rodando apenas local. Caso tenha que acessar ele remotamente crie um tunelamento na porta 22 através do SSH.

Adicione a seguinte regra em seu firewall


iptables -A INPUT -p TCP --dport 3306 -j DROP