Estável. Rápida. Simples. Poderosa. Bem documentada. Multi- plataforma. Extensivel.



Documentos relacionados
Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Instalação Apache + MySQL + PHPMyAdmin CentOS

FACULDADE DE TECNOLOGIA SENAC GESTÃO DA TECNOLOGIA DA INFORMAÇÃO LABORATORIO DE REDE

Criando um site com LAMP e Joomla em 30 minutos

Instalação e Configuração do Servidor HTTPD Apache

Sistemas Operacionais Livres. Servidor Web Apache

Instalando servidor Apache

PHP Seguro Ernani Azevedo (PROCERGS DRE/ARS Unix)

5/7/2010. Apresentação. Introdução. Ponto de vista do usuário. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE 27/02/2012

Prof. Samuel Henrique Bucke Brito

Manual Técnico Sistema Rede das Redes. Ver 1.0

Virtual Hosts. João Medeiros 1 / 12

SIMEC Sistema Integrado de Planejamento, Orçamento e Finanças

ServerAdmin - Se o sistema detectar algo de anômalo, um mail será enviado a bazar@projeointegador.

Atividade Proposta da Disciplina: Laboratório de Rede de Computadores

Sistema de log do Apache

Segurança Web com PHP 5 Douglas V. Pasqua Zend Certified Enginner

Guia de instalação para ambiente de Desenvolvimento LINUX

Servidor Apache - Instalação

Módulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Programação para Internet I. 1. Servidores web. Nuno Miguel Gil Fonseca

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Manual Instalação e-cidade-transparência no Ubuntu Server

#WordPressSeguro. Guia prático para implementações de segurança em WordPress

Aplicação web protegida

Módulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

CURSO ADONAI LINGUAGEM PHP Prof. Alexandre Eugênio. RESUMO - Capitulo 36 - PHP - Criptografia e Segurança

ArcGIS for Server: Administração e Configuração do Site (10.2)

Módulo e-rede Prestashop v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Integração com o Ambiente Virtual de Aprendizagem Moodle

Módulo e-rede Prestashop v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Inscrições em Eventos

Protegendo o Apache. Prof. Claudio Silva

Acesso Remoto Intelbras Internet Explorer

Manual do Usuário. Instalação via Terminal. SIGA-ADM versão 12.06

Nesse artigo abordaremos os principais aspectos de instalação e uso do NTOP no Fedora Core 4.

Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL):

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Troubleshooting Versão 1.0

CSAU Guia: Manual do CSAU 10.0 como implementar e utilizar.

Módulo e-rede VirtueMart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Programação Web Prof. Wladimir

Cookies. Krishna Tateneni Jost Schenck Tradução: Lisiane Sztoltz

Linguagem de Programação III Aula 2 Revisão Parte II

O GUIA RÁPIDO SOBRE SERVIDOR WEB 4 PASSOS PARA CONFIGURAÇÃO DO SEU PRÓPRIO SERVIDOR WEB COM APACHE

Segurança em Computadores. GTI SEDU

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

TUTORIAL DE INSTALAÇÃO APACHE PHP POSTGRESQL 8.2

Especificações da oferta Gerenciamento de dispositivos distribuídos: Gerenciamento de ativos

DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS

Comandos Linux Comando tcpdump, guia de referência e introdução. Sobre este documento

Instalação e Configuração

[Digite aqui] [Digite aqui] [Digite aqui] Utilização do LegNet pelo Internet Explorer

Capítulo 7. Hyper Text Transfer Protocol (HTTP). Serviço Apache. - Protocolo HTTP - Sessão HTTP - Configuração do serviço Apache

Aula 14 Serviços Internet (Servidor Web Apache)

Administração de redes Servidor FTP

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

Manual Comunica S_Line

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

Senha Admin. Nessa tela, você poderá trocar a senha do administrador para obter acesso ao NSControl. Inicialização

Linux Network Servers

Breve introdução a User Dir e Senhas no Apache Uma abordagem prática (aka crash course on User Dir and Directory Authentication on Apache)

Laboratório de Redes Prof. Dinailton

Procedimento para instalação do OMNE-Smartweb em Raio-X

Manual de uso PSIM Client 2010

Módulo e-rede OSCommerce v1.0. Manual de. Instalação do Módulo. estamos todos ligados

9.2 MySQL A instalação do MySQL trata-se de um procedimento relativamente fácil, já que iremos realizá-lo utilizando so repositórios do Linux.

Gerenciando seu projeto com dotproject

Configurando e Instalando o TRAC

Novidades do AVG 2013

Configurando o Cisco IP SoftPhone com a ferramenta de personalização

Usar o Office 365 no iphone ou ipad

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Omega Tecnologia Manual Omega Hosting

Segurança Web com PHP 5 Douglas V. Pasqua Zend Certified Engineer douglas.pasqua@gmail.com

Redatam+SP REcuperação de DAdos para Areas pequenas por Microcomputador

Wisurf - Central de Dominio (

# openssl genrsa config /opt/treinamento/openssl.cnf > spkey.key

Redes de Computadores II

1 - Como Instalar e Configurar Apache, PHP e MySQL no Windows

O que é conexão de área de trabalho remoto?

1 O PHP E A WORLD WIDE WEB

BACKUP ONLINE PASSOS PARA CONFIGURAÇÃO INICIAL DO PRODUTO

Manual de Utilização do Zimbra

Sistema de Chamados Protega

Linux - Servidor de Redes

GUIA DE CONFIGURAÇÃO FILTRO DE URL

3UHSDUDQGRR64/([SUHVVSDUDWUDEDOKDUFRP&ODULRQ

Transcrição:

Conteúdo: Porque PHP? Porque cuidar da segurança é tão importante? Cuidados com diretivas e funções. Register_globals. Utilizando php_flag e php_value. Logs e exibição de erros. Programando com segurança. Suhosin. Mod_security.

Porque PHP?

Estável. Rápida. Simples. Poderosa. Bem documentada. Multi- plataforma. Extensivel.

Porque cuidar da segurança é tão importante?

Porque o php é tão inseguro?

Falhas podem existir em qualquer sistema. Programas inseguros podem ser feitos em qualquer linguagem. Proteger aplicações web é tarefa tanto do administrador quando do programador. A segurança também está ligada com a qualidade do seu código. Cuidado com features que ajudam no desenvolvimento mas que podem abrir brechas de segurança.

Cuidados com diretivas e funções

Diretivas

allow_url_fopen Permite utilizar arquivos externos como se fossem arquivos locais. allow_url_include Permite utilizar arquivos externos em include/require. expose_php Adiciona uma assinatura no header do seu servidor web, informando que o php está instalado. magic_quotes Adiciona o caracter de escape \ (barra invertida) em todos os dados que necessitam ser identificados como caracteres normais \

Aplicação mal elaborada utilizando allow_url_fopen:

Agora com o allow_url_fopen desativado:

open_basedir e disable_functions

open_basedir - Define os diretórios apartir dos quais o PHP pode utilizar. open_basedir = /var/www/:/tmp/ disable_functions - Permite desabilitar funções que não precisem ser utilizadas. disable_functions = phpinfo, shell_exec, exec, passthru, proc_open, proc_nice, system, chdir, chroot, dir, closedir, getcwd, opendir, readdir, rewinddir, scandir, popen, pcntl_exec, pcntl_fork, pcntl_alarm, pcntl_setpriority, pcntl_signal, pcntl_wait, pcntl_waitpid, ini_get, ini_get_all, ini_set, ini_restore.

Aplicação sem open_basedir configurado.

Mesma aplicação, só que agora o open_basedir está em ação

Funções

As funções exec, shellexec, system e passthru executam comandos externos. Outras funções: phpinfo, proc_open, proc_nice, chdir, chroot, dir, closedir, getcwd, opendir, readdir, rewinddir, scandir, popen, pcntl_exec, pcntl_fork, pcntl_alarm, pcntl_setpriority, pcntl_signal, pcntl_wait, pcntl_waitpid, ini_get, ini_get_all, ini_set, ini_restore.

Register_globals

Com register_globals habilitado, são criadas variáveis locais com o nome equivalente às da EGPCS. É possível utilizar register_globals habilitado e ter minha aplicação segura? Porque tantos programadores insistem em habilitar register_globals? Porque não utilizar register_globals?

Exemplos de mal uso de register_globals

if (authenticated_user()) $auth = true; if ($auth) else echo Usuário autorizado... ; echo Usuário sem autorização! ; O código acima pode ser facilmente burlado com a seguinte URL: http://www.site.com.br?login.php?auth=1

Na forma correta ficaria: if (authenticated_user()) $_SESSION[ auth ] = true; if ($_SESSION[ auth ]) echo Usuário autorizado... ; else echo Usuário sem autorização! ;

Utilizando php_flag e php_value

Com as diretivas php_value, php_flag, é possível definir opções personalizadas para cada vhost via arquivos.htaccess. É necessário que a diretiva AllowOverride esteja definida com o valor All. As diretivas php_admin_flag e php_admin_value só podem ser utilizadas em arquivos de configuração do Apache e não podem ser sobrescritas por diretivas.htaccess.

Exemplo de uso da diretiva php_admin_value: <VirtualHost *:80> ServerAdmin but3k4@gmail.com ServerName 10.222.222.37 DocumentRoot /home/but3k4/public_html/ <Directory /home/but3k4/public_html/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all # utilizando as diretivas php_admin_value e php_admin_flag php_admin_flag expose_php Off php_admin_value open_basedir "/home/but3k4:/tmp" php_admin_value upload_tmp_dir "/home/but3k4/tmp" php_admin_value session.save_path "/home/but3k4/tmp" php_admin_value soap.wsdl_cache_dir "/home/but3k4/tmp php_admin_value disable_functions "phpinfo, shell_exec, exec, passthru, proc_open, proc_nice, system, chdir, chroot, dir, closedir, getcwd, opendir, readdir, rewinddir, scandir, popen, pcntl_exec, pcntl_fork, pcntl_alarm, pcntl_setpriority, pcntl_signal, pcntl_wait, pcntl_waitpid, ini_get, ini_get_all, ini_set, ini_restore" </Directory> ErrorLog /var/log/vhosts/but3k4/error.log LogLevel warn CustomLog /var/log/vhosts/but3k4/access.log combined </VirtualHost>

Logs e exibição de erros

Gravar logs de erros é útil para debugar problemas. Trate as mensagens de erro que o usuário pode visualizar. Exibir erros em ambiente de produção pode fornecer informações sobre o seu ambiente.

Ajustando as opções de erros e logs

error_reporting Define quais níveis de erros serão reportados. display_errors - Determina se os erros devem ser exibidos como parte da saída ou não. log_errors Define se os erros serão gravados em arquivo ou não. error_log Define em qual arquivo os erros serão gravados. Esta opção necessita que o log_errors esteja ativado.

Programando com segurança

Sempre verifique o tipo de dado, utilize funções ctypes, is_numeric, is_digit, e expressões regulares. Filtre os dados de entrada com funções do tipo filter_var e filter_input. Utilizar funções de escape output, como por exemplo htmlentities, strip_tags. Nunca utilize magic_quotes, em seu lugar utilize add_slashes, e strip_slashes. Nunca armazene senhas em texto plano, utilize hashes(md5,sha1,...). Utilize require_once no lugar de include. Nunca confie em usuário, sempre verifique a origem dos dados.

Suhosin

Um patch para o PHP que pode ser utilizado como estensão. Proteção em tempo de execução. Possui modo de simulação e proteção. Aceita filtrar entrada de dados. Permite encriptar sessões. Proteção de memória. Aplica limites de requisições por tipo de variável. Várias opções de logs. Aceita criar whitelist/blacklist.

Mod_security

É um firewall de aplicação web (WAF). É um módulo do Apache. Possui monitoramento, detecção e prevenção em tempo real. Existem arquivos de regras disponíveis para download. Você mesmo pode criar suas regras. É possível criar whitelists.

Referências

Site oficial da linguagem php: http://www.php.net Site oficial do mod_security: http://www.modsecurity.org Site oficial do suhoshin: http://www.hardened- php.net/suhosin/ Site oficial do phpsecinfo: http://phpsec.org/projects/phpsecinfo/index.html Site oficial do Chorizo: https://chorizo- scanner.com

Perguntas? cbsfilho@gmail.com IRC: irc.oftc.net Canal: sysadms