¿por qué es necesaria $_server["php_self"] en el action de un form?

Publicado en 'Seguridad Informática' por big_ed, 13 Ago 2019.





  1. big_ed

    big_ed Miembro maestro

    Registro:
    8 Ene 2019
    Mensajes:
    399
    Likes:
    9
    Temas:
    92




    Hola.

    En muchos tutoriales de PHP enseñan que, cuando vas a recibir datos de usuarios (via formulario) en la misma pagina en donde te encuentras, lo mejor es hacer lo siguiente:

    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    </form>


    Entiendo que si no rodeo a la superglobal $_SERVER('PHP_SELF') con HTMLSPECIALCHARS alguien podria poner codigo java script en la url y conseguir cosas...Pero lo que no entiendo es ¿por que es necesaria esa super global? Es decir, no seria mejor hacer simplemente esto?:

    <form method="post" action="miweb.php">
    </form>

    AL hacer esto ya no funciona el codigo java script escrito en la URL.

    O esto:
    <form method="post">
    </form>