Php self w3schools
La variable PHP_SELF se utiliza para obtener el nombre y la ruta del archivo actual, pero también puede ser utilizada por los hackers. Si PHP_SELF se utiliza en su página entonces un usuario puede introducir una barra (/) y luego algunos comandos de Cross Site Scripting (XSS) para ejecutar.
Puedes ver que este código ha añadido una etiqueta de script y un comando de alerta. Cuando esta página se cargue, el usuario verá un cuadro de alerta. Este es un simple ejemplo de cómo la variable PHP_SELF puede ser explotada.
La función htmlentities() codifica las entidades HTML. Ahora, si el usuario trata de explotar la variable PHP_SELF, el intento fallará y el resultado de ingresar código malicioso en la URL resultará en la siguiente salida:
¿Qué es _servidor PHP_SELF?
Descripción. $_SERVER[‘PHP_SELF’] Devuelve el nombre de archivo del script que se está ejecutando actualmente.
¿Cuál es el propósito de $_ PHP_SELF en PHP?
La $_SERVER[“PHP_SELF”] es una variable superglobal que devuelve el nombre del archivo del script que se está ejecutando actualmente. Así, $_SERVER[“PHP_SELF”] envía los datos del formulario enviado a la propia página, en lugar de saltar a una página diferente. De esta manera, el usuario obtendrá los mensajes de error en la misma página que el formulario.
¿Cuál es la forma correcta de utilizar PHP_SELF en el método de acción?
Un uso común de la variable PHP_SELF es en el campo de acción de la etiqueta <form>. El campo de acción del FORM instruye dónde enviar los datos del formulario cuando el usuario presiona el botón “submit”. Es común tener la misma página PHP como el manejador del formulario también.
$_servidor[‘php_self’]
Cuando use la variable $_SERVER[‘SERVER_NAME’] en una configuración de host virtual apache con una directiva ServerAlias, asegúrese de comprobar la directiva apache UseCanonicalName. Si está activada, esta variable siempre tendrá el valor de ServerName de apache. Si está Off, tendrá el valor dado por las cabeceras enviadas por el navegador.Dependiendo de lo que quiera hacer el contenido de esta variable, ponga On o Off.
Tenga en cuenta que la mayoría de los contenidos del Server-Array (incluso $_SERVER[‘SERVER_NAME’]) son proporcionados por el cliente y pueden ser manipulados. También pueden ser utilizados para inyecciones y por lo tanto DEBEN ser revisados y tratados como cualquier otra entrada del usuario.
$_SERVER[‘DOCUMENT_ROOT’] es increíblemente útil especialmente cuando se trabaja en el entorno de desarrollo. Si estás trabajando en proyectos grandes es probable que incluyas un gran número de archivos en tus páginas. Por ejemplo:
Creo que el elemento HTTPS sólo estará presente bajo Apache 2.x. No está en la lista de variables “especiales” aquí:http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteCondBut está aquí:http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond
Servidor Php
I am reading at w3schools.com I do not understand fully. (look at green TEXT color) I am trying to playground on my notepad++ it said $_SERVER[“PHP_SELF”] exploits can be avoided by using the htmlspecialchars() function.The form code should look like this:<form method=”post” action=”<?php echo htmlspecialchars($_SERVER[“PHP_SELF”]);?>”>The htmlspecialchars() function converts special characters to HTML entities. Now if the user tries to exploit the PHP_SELF variable, it will result in the following output: can i editor like this? since its error. <html><body> <form method = “POST” action=”<?php echo htmlspecialchars($_SERVER[“PHP_SELF”]);?>new8.php”> <b>UserName: </b><input type=”text” name=”username”><br><b>password: </b> <input type=”password” name=”password”><br><input type=”submit”></form> </body></html>
Forma de acción propia
La razón de usar htmlspecialchars allí es para prevenir la posibilidad de un ataque de Cross Site Scripting (XSS), ya que $_SERVER[“PHP_SELF”] puede ser manipulado por el usuario. Vea este artículo para más detalles.
Esto probablemente evitaría los problemas de inyección, pero aún así debería escapar. Incluso los nombres de archivos pueden contener caracteres especiales para HTML. Los ampersands, las comillas, el punto y coma son todos posibles. Estás creando un montón de bugs de borde al evitar htmlspecialchars y no estás ganando nada por ello.