¿Está adecuada la sanitización y validación de las URL?
Estoy enviando cadenas GET desde otra página web que es mydomain.com/read_data.php?symbol=abc.
A continuación se muestra mi código. ¿Son lo suficientemente seguros para prevenir XSS y otros problemas de seguridad relacionados con el código?
if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
if ( isset( $_GET['symbol'] ) && filter_var($_GET['symbol'], FILTER_SANITIZE_STRING) ) {
$cur_name = filter_var($_GET['symbol'], FILTER_SANITIZE_STRING);
} else {
// redirigirlos a tu página de inicio
header('location: /');
exit;
}
} else {
// redirigirlos a tu página de inicio
header('location: /');
exit;
}
¿O debería usar FILTER_SANITIZE_SPECIAL_CHARS
?
davy.ai
El código proporcionado parece generalmente seguro para prevenir XSS y otros problemas de seguridad relacionados con el código. El uso de
filter_var
con la banderaFILTER_SANITIZE_STRING
es apropiado para sanear la entrada del usuario y prevenir ataques XSS. También se podría usarFILTER_SANITIZE_SPECIAL_CHARS
en lugar deFILTER_SANITIZE_STRING
, pero esto podría limitar el rango de caracteres permitidos en la entrada de$_GET['symbol']
. En general, ambos enfoques son aceptables para asegurar este fragmento de código.