É óbvio que o PHP+MySQL+Apache é uma tecnologia da Web muito popular. Essa combinação é poderosa, escalável e ainda é gratuita. No entanto, as configurações padrão do PHP não são tão adequadas para sites que já estão online. Abaixo, podemos aprimorar a política de segurança do PHP modificando o arquivo de configuração padrão!
0x01: Desativar a função de processamento de arquivos de URL remoto
Assim como a função de processamento de arquivos da FOPEN, que aceita os parâmetros RUL do arquivo (por exemplo: fopen ('http: //www.yoursite.com'.'r')).), Essa função pode facilmente acessar recursos remotos. No entanto, essa é uma ameaça à segurança muito importante. Desativar essa função para limitar a função do arquivo é uma boa escolha. Faça as seguintes modificações no arquivo php.ini:
A cópia do código é a seguinte:
allow_url_fopen = off
0x02: Desativar o registro de variáveis globais
Nas versões antes do 4.2.0, o PHP usava variáveis globais como entrada. Esta função é chamada de registro_globals. Em aplicativos da Web, causou muitos problemas de segurança porque permite que os invasores operem facilmente variáveis globais em alguns casos. Felizmente, a função em 4.2.0 está desativada por padrão. É muito perigoso. Esta função deve ser desativada sob quaisquer circunstâncias. Se alguns scripts exigirem esse recurso, existe uma ameaça potencial à segurança para esse script. Modifique pnp.ini para desativar esta função:
A cópia do código é a seguinte:
Register_globals = OFF
0x03: Operações de leitura e gravação restritas de PHP
Em muitos processos de desenvolvimento da Web, os scripts PHP precisam ler e gravar operações no sistema de arquivos local, como/var/www/htdocs/arquivos. Para melhorar a segurança, você pode modificar as permissões de leitura e gravação de arquivos locais:
A cópia do código é a seguinte:
open_basedir =/var/www/htdocs/arquivos
0x04: Limite de posar
Limitar o tempo de execução do PHP, o uso da memória, os dados de postar e fazer upload é a melhor estratégia, e a seguinte configuração pode ser feita:
A cópia do código é a seguinte:
max_execution_time = 30; Tempo de execução do script máximo
max_input_time = 60; Tempo máximo gasto analisando a entrada
memória_limit = 16m; Memória máxima usada por um script
upload_max_filesize = 2m; Tamanho do arquivo de upload máximo
post_max_size = 8m; Tamanho máximo da postagem
0x05: Desativar mensagens de erro e ativar o registro
Nas configurações padrão, o PHP produzirá uma mensagem de erro para o navegador. Essa configuração padrão é a configuração mais razoável durante o processo de desenvolvimento de aplicativos. No entanto, também pode vazar algumas informações de segurança para o usuário, como o caminho de instalação e o nome de usuário. Nos sites que foram desenvolvidos, é melhor desativar a mensagem de erro e emitir a mensagem de erro para o arquivo de log.
A cópia do código é a seguinte:
display_errors = off
log_errors = on
0x06: ocultar arquivo php
Se o arquivo php não estiver oculto, podemos obter a versão do servidor PHP por meio de vários métodos, por exemplo: http://www.example.com/script.php?=phpb8b5f2a0-3c92-11d3-a3a9-4c7b08c1000000
Obviamente, não queremos que os usuários obtenham diretamente a versão PHP do servidor do seu site. Felizmente, há uma mudança no php.ini que pode desativar esta função:
A cópia do código é a seguinte:
expose_php = off
0x07: Configuração do modo de segurança
Por padrão, o PHP pode ser configurado no modo de segurança. Nesse modo, o Apache proíbe acessar arquivos, variáveis de ambiente e programas binários. No modo de segurança, o maior problema é que apenas o proprietário do arquivo pode acessar esse arquivo php. Se muitos desenvolvedores desenvolverem em conjunto esse programa, esse cenário não é realista. Quando você precisa acessar um arquivo php, você precisa modificar o proprietário do arquivo. Outro problema é que outros programas não podem acessar esses arquivos PHP. A configuração a seguir pode modificar as permissões do arquivo em um grupo de usuários em vez de um único usuário.
A cópia do código é a seguinte:
safe_mode = OFF
sAFE_MODE_GID = ON
Ao ativar o SAFE_MODE_GID, você pode acessar arquivos PHP usando esse grupo de Apache. O modo de segurança também é muito eficaz na prevenção da execução binária, no entanto, os desenvolvedores desejam poder executar alguns arquivos binários em determinadas situações específicas. Nesses casos especiais, você pode colocar o arquivo binário em um diretório, por exemplo (/var/www/binários) e pode fazer as seguintes configurações:
A cópia do código é a seguinte:
sAFE_MODE_EXEC_DIR =/var/www/binários
Finalmente, nas configurações a seguir, você pode acessar as variáveis de ambiente do servidor, fornecendo um prefixo "_" que pode acessar apenas variáveis de ambiente com prefixos especificados:
A cópia do código é a seguinte:
Safe_mode_allowed_env_vars = php_
0x08: restringir o acesso público a arquivos com nomes específicos de sufixo
Por razões de segurança, muitos arquivos com nomes específicos de sufixo não podem ser acessados por usuários públicos. Por exemplo, os arquivos com sufixo .inc contêm algumas informações confidenciais, como as informações de conexão MySQL. Se não houver configuração apropriada, todo usuário poderá acessar este arquivo de configuração. Para aprimorar a segurança do site, você precisa configurar o seguinte no arquivo ..htaccess:
A cópia do código é a seguinte:
<FIOSSMATCH>
O pedido permite, negar
Negar de todos
</filesmatch>
0x09: Resumo
A configuração padrão do PHP é para desenvolvedores. Se o site for para um grande número de usuários, é recomendável reconfigurar o PHP.