Corsi on-line

Accettare input da POST solo dal proprio dominio

Un buon sistema per garantire la sicurezza dei propri form è quello di impedire la ricezione di input inviati tramite metodo POST quando provenienti da pagine esterne al proprio spazio Web; la procedura descritta in questo post può essere effettuata anche intervenendo sulle direttive del Web server, tramite un comune .htaccess, ma se non si ha la possibilità di operare in questo modo, l’alternativa basata su PHP è la seguente:

if (count($_POST) != 0)
{
    if (isset($_SERVER['HTTP_REFERER']))
    {
        $referrer = parse_url($_SERVER['HTTP_REFERER']);
        $porta = intval($referrer['port']);
        $host = $referrer['host'] . (!empty($porta) ? ":$porta" : '');

        if (strpos($host, 'tuosito.it') === false)
        {
            exit();
        }
    }
}

In pratica, lo scriptino proposto intercetta l’URL (o per meglio dire, la querystring) relativa alla pagina di provenienza, “smonta” questo dato alla ricerca del nome di dominio e lo confronta con uno valido, se il confronto non ha successo impedisce l’accoglimento dell’input.

Post correlati
I più letti del mese
Tematiche