pk_2r Posted August 23, 2010 Report Share Posted August 23, 2010 Bueno en mi pagina tengo un formulario donde los usuarios pueden escribir cualqier wea y despues sale publicado en la web, todo bien hasta que hace poco algun gracioso esta escribiendo en el formulario <script>window.location = "http://www.google.com";</script> y eso ase que mi pagina sea redirigida a google.com apenas uno se mete xd necesito saber como prohibir que en el formulario uno pueda escribir las etiquetas <script> :l mi pagina : http://like.caadim.cl :paco: Link to comment Share on other sites More sharing options...
rkstro Posted August 23, 2010 Report Share Posted August 23, 2010 Mira eso es algo que se debe solucionar ahora, ya que lo que te pasa es lo que se conoce por XSS Deberias usar una funcion como para limpiar los posibles script que pongan, esto debes ponerlo antes de procesar la variable enviada por el formulario, asi que en vez de que el script guarde por ejemplo la variable $texto deberia guardad limpiar_tags($texto) function limpiar_tags($tags){ $tags = strip_tags($tags); $tags = stripslashes($tags); $tags = htmlentities($tags); return $tags; } limpiar_tags($variable); Link to comment Share on other sites More sharing options...
pk_2r Posted August 23, 2010 Author Report Share Posted August 23, 2010 (edited) hola hice lo que me dijiste pero no funciona xd en ves de limpiar los tags, me guarda la frase limpiar_tags($mivariable) en la bd :l a lo mejor no entendi bien lo que hay que hacer xD pongo el trozo del codigo que necesito proteger: if ($_POST["like"]) { $like=$_POST["like"]; mysql_query("INSERT INTO fblike VALUES(NULL, '$like', '1')"); $x=mysql_query("SELECT * FROM fblike ORDER BY id DESC LIMIT 1"); while ($y=mysql_fetch_assoc($x)){ $id=$y['id']; } ?> <script type="text/javascript"> window.location.href="<?=$url_site?>like.php?id=<?=$id?>";</script> <? } ?> Edited August 23, 2010 by pk_2r Link to comment Share on other sites More sharing options...
rkstro Posted August 23, 2010 Report Share Posted August 23, 2010 hola hice lo que me dijiste pero no funciona xd en ves de limpiar los tags, me guarda la frase limpiar_tags($mivariable) en la bd :l a lo mejor no entendi bien lo que hay que hacer xD pongo el trozo del codigo que necesito proteger: if ($_POST["like"]) { $like=$_POST["like"]; mysql_query("INSERT INTO fblike VALUES(NULL, '$like', '1')"); $x=mysql_query("SELECT * FROM fblike ORDER BY id DESC LIMIT 1"); while ($y=mysql_fetch_assoc($x)){ $id=$y['id']; } ?> <script type="text/javascript"> window.location.href="<?=$url_site?>like.php?id=<?=$id?>";</script> <? } ?> Mira limpiar_tags debuelve un string asi que no te podria haber guardado esa frase de "limpiar_tags" segun el codigo que colocas deberia quedar asi: if ($_POST["like"]) { $like=limpiar_tags($_POST["like"]); mysql_query("INSERT INTO fblike VALUES(NULL, '$like', '1')"); $x=mysql_query("SELECT * FROM fblike ORDER BY id DESC LIMIT 1"); while ($y=mysql_fetch_assoc($x)){ $id=$y['id']; } Link to comment Share on other sites More sharing options...
pk_2r Posted August 26, 2010 Author Report Share Posted August 26, 2010 ahi me funciono muchas gracias ! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now