Implementando servidor de aplicações PHP utilizando Zend Framework

Esse mega artigo aborda todos os conceitos técnicos e práticos para a implementação de um servidor de aplicações PHP utilizando framework Zend, incluindo detecção de intrusão e entre outros conceitos. Vale a pena conferir.

[ Hits: 144.541 ]

Por: José Cleydson Ferreira da Silva em 27/04/2010


Configurando exibição de erros



Sistemas altamente acessados são alvos de constantes ataques, que muitas vezes afetam a disponibilidade, integridade e confiabilidade das informações.

Para minimizar os acidentes podemos evitar que o servidor retorne erros de URL não encontradas, esses erros geralmente mostram versões de softwares que estão sendo usados e o sistema operacional que está sendo usado, essas informações contribuem para tentativas de invasão e exploração de falhas, portanto é importante que sejam tratadas para que o servidor possa ter melhor robustez.

Pode-se configurar esse erro no arquivo principal do apache (apache.conf) usando a diretiva ErrorDocument. Segue abaixo o erro gerado e as diretivas usadas para impedí-los.

Erro do Apache:

The requested URL /ds was not found on this server.
Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.5 with Suhosin-Patch Server at 200.131.231.53 Port 80

Tratamento de exibição de erro:

ErrorDocument 400 "<h1>400 error: bad request</h1>"
ErrorDocument 403 "<h1>403 error: access forbidden</h1>"
ErrorDocument 404 "<h1>404 error: document not found</h1>"
ErrorDocument 500 "<h1>500 error: internal server error</h1>"

Pode-se configurar também exibições de erros e funções que possuem caráter de insegurança, uma série de funções podem permitir que falhas sejam exploradas por um cracker. Portanto devemos configurar duas diretivas: disable_functions, seguida pelo nome das funções separadas por vírgulas e a display_errors que desabilita a exibição de erro do php, seus parâmetros são on e off. Como é mostrado no quadro abaixo.

; Para não mostrar mensagens de erro
display_errors = Off

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.


disable_functions = apache_child_terminate, apache_setenv, curl_exec, curl_multi_exec, define_syslog_variables, dir, dl, escapeshellarg, escapeshellcmd, eval, exec, set_time_limit, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_restore, ini_set, ini_get_all, ocilogon, openlog, opendir, parse_ini_file, passthru, phpinfo, php_uname, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, readdir, readfile, sacndir, shell_exec, show_source, syslog, system, xmlrpc_entity_decode, mysql_pconnect

Página anterior     Próxima página

Páginas do artigo
   1. Índice
   2. Introdução
   3. Sobre Zend Framework
   4. Particionamento
   5. Instalação do Servidor Web
   6. Habilitando o módulo mod_rewrite
   7. Habilitando o módulo mod_userdir
   8. Instalando Zend Framework
   9. Testando Zend Framework
   10. Padrões de diretórios para aplicações do Zend Framework
   11. Script para a criar a estrutura de diretório do MVC
   12. Configurando restrição de acesso
   13. Configurando Virtual Host
   14. Padronizando o formato dos registros em arquivos de log
   15. Suporte a conexões seguras com SSL
   16. Configurando exibição de erros
   17. Liberando acesso a ftp
   18. Rotinas de backup
   19. Ferramenta para detecção de intrusão (opcional)
   20. Acelerando o PHP (opcional)
   21. Considerações finais
Outros artigos deste autor

Como migrar banco de dados MySQL para PostgreSQL

Bioinformática - PhyML: alinhamento de sequências nucleotídicas em ambiente paralelo

Compiz - Janelas à 360 graus no Linux

Bioinformática - Instalação do Mr Bayes em ambiente paralelo

Implementando servidor web Java com Tomcat no Linux

Leitura recomendada

Brackets - Editor Open Source no Linux Mint e Ubuntu

Migrando seu desktop para software livre

Instalando o Gaim-vv no Slackware 10

Efeito metálico no GIMP

Rodando um servidor de IRC (ircd)

  
Comentários
[1] Comentário enviado por viniciusgnu em 27/04/2010 - 08:47h

Meu velho, como sempre está de parabéns! "Keep up with the good work"!
Abraço

[2] Comentário enviado por cleysinhonv em 27/04/2010 - 08:50h

Valeu Vinicius!

Como sempre "procurar" / "tentar" / "me esforçar" em publicar artigos completos que ajudem a comunidade como um todo!

[3] Comentário enviado por uberalles em 27/04/2010 - 11:00h

Que "putza" app server bacana!! Muito bem detalhado seu artigo e passo a passo.

[4] Comentário enviado por cleysinhonv em 27/04/2010 - 11:33h

Olá Andre Miguel,

Bacana né! Procurei Explicar de forma clara e detalhar o máximo possível! Acredito que este material irá ajudar muitas empresas e pessoas que queiram implemetar esse tipo de solução!

Um abraço!

[5] Comentário enviado por valterrezendeeng em 27/04/2010 - 13:04h

Muito Bom o Artigo
Bem Feito e completo

Parabéns !!!!


Abraço

[6] Comentário enviado por razgriz em 27/04/2010 - 13:10h

Belo artigo Kurumin, continue assim!

[7] Comentário enviado por cleysinhonv em 27/04/2010 - 13:16h

Olá valter! Olá Prof. RazGriz!

Obrigado! Fico grato e com sentimento de dever cumprido. Espero que esse artigo possa ajuda-los de alguma forma, utilize-o e indique-o a quem precisar!

Um abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts