Como evitar ataques de injeção de código no PHP?
Estou um pouco confuso, existem tantas funções no PHP, e algumas usando isso, algumas usando isso. Algumas pessoas usam:htmlspecialchars()
, htmlentities()
, strip_tags()
etc
Qual é o correto e o que vocês costumam usar?
Isso está correto (me aconselhe um melhor, se houver):
$var = mysql_real_escape_string(htmlentities($_POST['username']));
Esta linha pode impedir a injeção do MySQL e o ataque XSS ??
Btw, há outras coisas que eu preciso prestar atenção além do ataque XSS e injeção de MySQL?
EDITAR
Concluir:
Se eu quiser inserir uma string no banco de dados, não preciso usarhtmlentities
, basta usar omysql_real_escape_string
. Ao exibir os dados, usehtmlentities()
, é isso que todos vocês querem dizer?
Resumir:
mysql_real_escape_string
usado quando inserir no banco de dadoshtmlentities()
usado ao enviar dados para a página da webhtmlspecialchars()
usado quando?strip_tags()
usado quando?addslashes()
usado quando?Alguém pode preencher o ponto de interrogação?