Non esiste un metodo assolutamente sicuro per evitare che un form di un carrello di un e-commerce in PHP venga inviato da remoto. Esiste invece una pratica raccomandata che possiamo seguire.
Per prima cosa definiamo la nostra stringa di salt:
<?php
define('SALT', 'stringa');
?>
Quindi creiamo un token usando la stringa di salt e il timestamp corrente che andremo a memorizzare in una variabile di sessione:
<?php
$_SESSION['salt_time'] = time();
$token = md5(SALT . $_SESSION['salt_time']);
?>
<input type="hidden" name="nonce" value="<?php echo $token; ?>">
Infine validiamo il token:
<?php
if(isset($_POST['nonce'])) {
if($_POST['nonce'] == md5(SALT . $_SESSION['salt_time'])) {
// Valido
}
}
?>