X
xcodex
Muy buenas!, estuve viendo una manera de realizar un token para protegerme de ataques XSS.
En un principio lo tenía de esta manera:
Genero un token:
En el formulario:
Y en el proceso de validación:
Hasta aquí todo funcionando perfectamente, pero me preguntaba si por algún método podrían utilizar lo que está en el campo de tipo "hidden" (con clic derecho -> inspeccionar elemento).
Entonces en el proceso de validación le agregué lo siguiente:
¿Qué les parece?, seguramente se le puede agregar mas seguridad pero para un nivel novato puede funcionar bien.
En un principio lo tenía de esta manera:
Genero un token:
PHP:
<?php
session_start();
session_regenerate_id();
$bin = bin2hex(random_bytes(32));
$unhash = hash('sha512', $session_id = session_id());
$hora = hash('sha512', date ("d-m-Y"));
$_SESSION['token'] = $unhash.$sid.$hora;
?>
En el formulario:
PHP:
<input type="hidden" name="code" value="<?php echo $_SESSION['token']; ?>">
Y en el proceso de validación:
PHP:
session_start();
session_regenerate_id();
if(hash_equals($_SESSION['token'],$_POST['code'])){
//Resto del código.
}
Hasta aquí todo funcionando perfectamente, pero me preguntaba si por algún método podrían utilizar lo que está en el campo de tipo "hidden" (con clic derecho -> inspeccionar elemento).
Entonces en el proceso de validación le agregué lo siguiente:
PHP:
session_start();
session_regenerate_id();
$hashnuevo1 = ('sha512', mt_rand(1,9999);
$_SESSION['token'] = $_SESSION['token'].$hashnuevo1 ;
$_POST['code'] = $_POST['code'].$hashnuevo1;
if(hash_equals($_SESSION['token'],$_POST['code'])){
//Resto del código.
}
¿Qué les parece?, seguramente se le puede agregar mas seguridad pero para un nivel novato puede funcionar bien.

