Action php echo _server php_self

Validación de formularios Php

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 script y un comando de alerta. Cuando esta página se carga, 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?

El $_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.

Servidor Php

Tanto GET como POST crean un array (por ejemplo, array( key => value, key2 => value2, key3 => value3, …)). Este array contiene pares clave/valor, donde las claves son los nombres de los controles del formulario y los valores son los datos de entrada del usuario.

  Operador modulo java

Tanto GET como POST se tratan como $_GET y $_POST. Estos son superglobales, lo que significa que siempre son accesibles, independientemente del ámbito – y puede acceder a ellos desde cualquier función, clase o archivo sin tener que hacer nada especial.

La información enviada desde un formulario con el método GET es visible para todos (todos los nombres y valores de las variables se muestran en la URL). GET también tiene límites en la cantidad de información a enviar. La limitación es de unos 2000 caracteres. Sin embargo, como las variables se muestran en la URL, es posible marcar la página. Esto puede ser útil en algunos casos.

Observe que al comienzo del script, comprobamos si el formulario ha sido enviado utilizando $_SERVER[“REQUEST_METHOD”]. Si el REQUEST_METHOD es POST, entonces el formulario ha sido enviado – y debería ser validado. Si no ha sido enviado, omitimos la validación y mostramos un formulario en blanco.

Formulario Php

Entender y evitar los exploits de PHP_SELF Cuando usamos la variable PHP_SELF para apuntar nuestro archivo actual en la acción del formulario, también abrimos una puerta para los hackers. Ellos pueden fácilmente añadir algún script escribiéndolo al final de nuestra URL y luego pueden ejecutar ese script en nuestra página. A través de este post, estamos profundizando en este exploits y el método para evitarlos en función. Consideremos que tenemos una página, welcome.php en nuestra carpeta raíz y que tiene un formulario que utiliza la variable PHP_SELF para la acción del formulario. <form action=”<?php echo $_SERVER[‘PHP_SELF’]; ?>” method=”post”>

  Javascript extract number from string

Ahora, si un usuario ha introducido la URL normal en la barra de direcciones como http://www.yourdomain.com/welcome.php, el código anterior se traducirá como <form action=”welcome.php” method=”post”>. Este es un caso normal. Pero si alguien intenta llamar a un script introduciendo algún código adicional con nuestra URL en la barra de direcciones del navegador como: http://www.yourdomain.com/welcome.php/%22%3E%3Cscript%3Ealert(‘xss’)%3C/script%3E%3Cfoo%22

Ahora la función htmlentities() codifica las entidades HTML. si un usuario intenta añadir algún código en nuestra URL, los elementos HTML de estos códigos son saneados con la función htmlentities(). El resultado de introducir un código malicioso en la URL después del procesamiento de PHP será el siguiente <form method=”post” action=”welcome.php/&quot;&gt;&lt;script&gt;alert(‘xss’)&lt;/script&gt;&lt;foo”>

Forma de acción propia

$_SERVER[‘SCRIPT_NAME’] es del lado del servidor. No hay problemas de compatibilidad con los navegadores como resultado, y no debería haber problemas de seguridad, ya que simplemente es una indicación de lo que el servidor está sirviendo para la URL solicitada (es decir, http://example.com/ y http://example.com/index.php darían lugar a ‘/index.php’).

Deberías codificar y comprobar todas las entradas independientemente de lo que creas que es seguro. Por ejemplo, la variable del servidor HTTP_HOST se lee de las cabeceras de la petición enviada por el cliente. El “cliente” puede ser cualquier cosa… no sólo los navegadores… por ejemplo un script PERL/python que alguien escribió específicamente para falsear estas cabeceras.

  CSS: cómo cambiar los estilos de un conjunto de elementos cuando haya más de un número determinado de ellos

Casi siempre hay un HTTP_HOST dentro de la solicitud del cliente. Esta no es la única variable, Apache y PHP no desinfectan/codifican estas variables para usted. Debe codificar y comprobar SIEMPRE y para TODAS las entradas incluyendo las “generadas por el servidor”.

$_SERVER es un array que contiene información como cabeceras, rutas y ubicaciones de scripts. Las entradas en este array son creadas por el servidor web. No hay garantía de que todos los servidores web proporcionen alguno de estos datos; los servidores pueden omitir algunos, o proporcionar otros que no aparecen aquí.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad