Proteção contra PHP Injection 列印

  • proteção, php, injection
  • 0

Páginas em PHP podem ser vulneráveis ao ataque chamado PHP Injection. Este ataque consistem em passar por querystring comandos em PHP ou endereços de arquivos que serão interpretados e executados por sua página. Se o site não possuir a devida proteção, o invasor poderá ter total acesso e controle sobre seu site.


Abaixo segue um exemplo de proteção contra PHP Injection, onde verificamos a existência de palavras comuns neste tipo de ataque.

 

<?php
//Pega os dados passados pela URL
$pagina=$_GET['pagina'];

    //Verifica se a string passada possui algum trecho inválido
    //Caso tenha mostra uma mensagem de erro
    if(eregi("http|www|ftp|.dat|.txt|.gif|wget", $pagina))
    {
        echo "Erro na URL!";
    //Se a variável passada estiver dentro das normas, executa o else abaixo
    }else{
        if(!empty($pagina)) {
            @include ($pagina);
        }else{
            @include ("index.php"); //essa seria a sua página principal
        }
    }
?>

 

Este exemplo não permite que alguém tente colocar URLs e outros tipos de códigos em sua querystring. Veja o exemplo abaixo:

Assim funciona corretamente:
index.php?pagina=contato

Desta maneira o script acima fará o bloqueio:
index.php?pagina=http://www.sitedovirus.com&cmd=comando malicioso

Outra maneira eficiente de evitar este tipo de ataque é mapear todas as páginas de seu site através de IDs. Veja o exemplo abaixo:

$inc = "index.php"; // Página default
if($_GET['opcao']=="1") { $inc = "pagina1.php"; }
if($_GET['opcao']=="2") { $inc = "pagina2.php"; }
include($inc);

Neste exemplo somente deverão ser passados por querystring somente a ID da página desejada. Caso seja passado algo não existente nos ifs, a variável $inc continuará com o valor index.php.


這篇文章有幫助嗎?

« 返回