Cita:
Iniciado por GatorV Esa función (autogenerada por DW), es segura, pero no te deberías de fiar, todavía podrían usar ataques XSS para insertar JavaScript o algún otro contenido a tu pagina.
Saludos.
ya entiendo, me pueden poner en el post algo asi:
Código:
<script> document.location.href='http://paginamaliciosa.com/' </script>
y se inserta eso en la BD y cuando listen en la pagina los usuarios van a ser direccionados..
le modifique ahora el codigo y le puse 'htmlentities'
Código PHP:
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
case "like1":
$theValue = ($theValue != "") ? "'%" . $theValue . "%'" : "NULL";
break;
case "like2":
$theValue = ($theValue != "") ? "'" . $theValue . "%'" : "NULL";
break;
case "like3":
$theValue = ($theValue != "") ? "'%" . $theValue . "'" : "NULL";
break;
}
$theValue=htmlentities($theValue); // agregado
return $theValue;
}
con el htmlentities cuando listen se va a ver asi en el codigo fuente html:
<script> document.location.href='http://paginamaliciosa.com/' </script>
pero el usuario va a ver esto en su navegador:
<script> document.location.href='http://paginamaliciosa.com/' </script>
sin que se ejecute...
y ahora esta 100% segura o que otra vulnerabilidad detectas?