Sto utilizzando i token per proteggere da un attacco CSRF ma per far funzionare il pulsante "indietro" riuso i vecchi token se sono impostati. Fornisce ancora una protezione CSRF o un utente malintenzionato può semplicemente impostare il cookie "CSRFtokeneditcustomer" come qualcosa di simile a "Ciao" e ignorare facilmente questa protezione?
if(!isset($_COOKIE["CSRFtokeneditcustomer"])){
$token = bin2hex(openssl_random_pseudo_bytes(16));//preventCSRF
setcookie("CSRFtokeneditcustomer", $token, time() + 60 * 60 * 24,'/','',true,true);
}else{
$token =$_COOKIE["CSRFtokeneditcustomer"];
}
?>
<form id="editForm" method="post" action="<?= ROOT."/".$_SESSION['PAGE']['REQUEST']."/" ?>" enctype="multipart/form-data" onsubmit="return validateForm()">
<div><input type="hidden" name="action" value="editcustomer" /></div>
<div><input type="hidden" name="add" value="1" /></div>
<div><input type="hidden" name="fullload" value="<?= (($_REQUEST['fullload']) ? 1 : 0); ?>" /></div>
<div><input type="hidden" name="edit" value="<?= $this->data['id']; ?>" /></div>
<div><input type="hidden" name="id" id="id" value="<?= $this->data['id']; ?>" /></div>
<input name="CSRFtokeneditcustomer" type="hidden" value="<? echo $token?>"/>
<div id="cms_mainform">