You are here
Secuencias de comandos PHP de forma segura Programación 

Secuencias de comandos PHP de forma segura

Secuencias de comandos PHP de forma segura

Ejecutar secuencias de comandos PHP de forma segura

Conexión a una base de datos requiere que las contraseñas se incluyen en la secuencia de comandos en algún momento.Otros guiones que escribe pueden incluir información sensible. Esta información puede estar expuesto si no envuelve sus scripts PHP. La protección de las secuencias de comandos de miradas indiscretas se llama “envoltura”. Cuando enrolle una secuencia de comandos, se le llama por otro guión que oculte su guión y realiza una serie de comprobaciones de seguridad para garantizar que sólo el uso autorizado que se haga de ella.

¿De qué otros usuarios ver las contraseñas?

Hay dos maneras:

  • Si usted no está prestando atención y coloca sus contraseñas en el árbol web dentro de un archivo cuya extensión no se analiza por el intérprete PHP. (Es decir, pueden cargarlo como http://www.mysite.com/passwords.txt y obtener el contenido) Esto es particularmente malo porque _anyone_ en la web puede ver el archivo.
  • Si coloca la contraseña en un archivo que, o bien puede ser leído por el servidor web directamente o por otros usuarios en su grupo en el mismo servidor web. Esto no se aplica a las personas que pueden pagar un servidor dedicado para ellos mismos. Si coloca las contraseñas en un archivo que puede ser leído por otros usuarios de su grupo, a fin de buscar a su directorio a través de FTP o Telnet y leerlos directamente. Algunos anfitriones prevenir este comportamiento chrooting (toma de / usr / home / usuario igual a / al inicio de sesión; chroot es Unix “para el cambio de raíz”) los inicios de sesión de usuario. Sin embargo, muchos de ellos no enchufe un agujero similar que se puede permitir que otros usuarios de su servidor para acceder a los archivos en caso de que son legibles por el servidor web.En estos casos, los usuarios pueden simplemente escribir un script (que funciona como identificador de usuario “nadie”) que pueden acceder a los archivos en el servidor que pueden ser leídos por el servidor web.

¿Cómo envolver a evitar eso?

Envoltura establece el usuario que accede a los archivos a ser igual a la identificación de usuario. Un buen envoltorio (seguro) también hace varias comprobaciones de validez basadas en la seguridad en la solicitud antes de ejecutarlo. El único inconveniente de la ejecución de un envoltorio es que se necesita para escribir código seguro o un hacker podría potencialmente tener acceso a los archivos dentro de su árbol web (o incluso fuera de ella si la envoltura permite que).

¿Qué es PHP-cgiwrap?

Un derivador de scripts PHP. Esta es una versión del derivador de scripts cgiwrap utilizado para los programas de Perl. La versión de php cgiwrap fue creado por pairNetworks para su uso en sus servidores. Si aloja sus script PHP en otro lugar, algún otro método tendrá que ser empleado para envolverlos.

Nota:  php-cgiwrap sólo está disponible en los sitios alojados por pairNetworks. Tienen una página de soporte fot. Si eres curioso acerca de cómo funciona, que modificaron la fuente cgiwrap llamar php con el guión como un argumento en lugar de llamar el propio guión.

Hay alternativas, que se explican a continuación.

envolver de forma transparente

Algunos servidores de Internet que ofrecen las páginas PHP habilitado, fundamentalmente, presentar envolver transparente.El servidor puede parecer para ejecutar cgi-wrap en scripts PHP de forma transparente, siempre y cuando tengan la extensión .php. Ni siquiera puede darse cuenta de las secuencias de comandos están siendo envueltos. Pero es importante preguntar a su proveedor de alojamiento si lo son.

Hay varias maneras de hacer esto. Se podría usar mod_rewrite tubería de forma automática todas las solicitudes de PHP a través de un derivador de scripts, o puede utilizar la funcionalidad de Apache suExec, que es probable que lo que su anfitrión puede haber hecho. Para un buen comienzo con el tema, véase (http://www.apache.org/docs/suexec.html).

Precaución:  Si el proveedor no ha puesto a disposición una forma de ejecutar las secuencias de comandos de una manera que mantiene las contraseñas lejos de las miradas indiscretas de otros usuarios en su sitio, entonces usted debe pasar a un proveedor que realmente se preocupa por la seguridad del usuario.

¿Cómo puedo conseguir envuelto?

Probablemente esté pensando todo esto es muy confuso. Y tendría razón. Envoltura es un tema confuso, en parte debido a la redirección pasando y en parte debido a la envoltura para permanecer seguros que debe ser algo de un “cuadro negro”.Espero que se encuentra esta una explicación clara, que se puede llevar con usted la hora de evaluar sus necesidades de embalaje de PHP en su propio sitio. No se preocupe si se siente las explicaciones son demasiado técnico, usted no tiene que saber cómo funciona todo para asegurar que sus guiones son seguras.

¿Cómo sé si mi anfitrión utiliza envoltorio?

Simple, crear un guión y marcarlo con chmod 700. Si el servidor web todavía se puede ejecutar, a continuación, que están utilizando envoltura. Si no, entonces no lo son.

¿Cómo puedo envolver configuración en cualquier lugar?

No lo hace, lo hace a su proveedor. Esto se debe a envolver es algo peligroso si no se ha configurado correctamente, y la responsabilidad de la instalación debe ser tomado por el administrador del sistema. Además, las envolturas de varios usuarios necesitan tener la capacidad SUID y SGID, que es por lo general sólo reside en la raíz.

Eso es todo por ahora, quiero saber si esto plantea más preguntas que respuestas (como suele ser el caso).

Cómo hacer yo envoltura de configuración para mis scripts PHP?

Bien, ahora que usted sabe lo que es un derivador de scripts es y por qué lo necesita, es el momento para envolver páginas habilitadas su PHP. El ejemplo que daré es para el uso de php-cgiwrap (disponible únicamente en sitios pairNetworks en este momento) y el servidor web Apache. Usted tendrá que consultar con su proveedor de alojamiento para obtener información sobre cómo implementan envoltura guión. Envoltura puede ser una cosa muy individual. Sin embargo, muchos de los conceptos básicos se aplican a otros entornos.

Para hacer cumplir envoltura de secuencias de comandos en un subdirectorio de su sitio web, añadir estas líneas a su archivo .htaccess. Ellos simplemente le dicen al servidor web para añadir dinámicamente un nuevo tipo MIME para los archivos que tienen la extensión .wphp. Y para cualquier tipo de archivos solicitados, ejecutarlos mediante la ejecución a través del intérprete de PHP, que es un programa CGI en sí mismo escrito en C.

AddType application / x-httpd-wphp wphp
aplicación Acción / x-httpd-wphp /cgi-sys/php-cgiwrap/cityg/php3.cgi

Precaución:  Si coloca estas líneas en el archivo .htaccess en su directorio document_root (el directorio base donde están las páginas web de servced, el primer directorio de acceso público, es decir, el directorio de public_html o www en su cuenta de alojamiento web), todos los archivos que tienen la wphp extensión en su sitio web se ejecuta como programas PHP. Este es el comportamiento deseado, no es realmente una advertencia, pero quería llamar su atención sobre ello porque es importante conocer.

Sin embargo, es posible que no les gusta dar a sus páginas una extensión de archivo no estándar, por lo que si estas líneas lugar en su archivo .htaccess en un directorio donde activado su PHP páginas son, todo se llevará a cabo a través de la envoltura. No hay necesidad de tener extensiones separadas para envolvió un artículo en las páginas.

AddType application / x-httpd-wphp php3
aplicación Acción / x-httpd-wphp /cgi-sys/php-cgiwrap/cityg/php3.cgi

Precaución:  Si utiliza la opción para envolver todas las páginas PHP habilitado en un directorio, mantenga esta advertencia en mente. Antes de colocar esas líneas en su .htaccess en su directorio document_root, ser conscientes de que cadasecuencia de comandos en su sitio será ejecutado por la primera corriendo a través de la envoltura. Esto esextremadamente ineficiente y derrochador de recursos compartidos, y sólo debe utilizarse si su totalidad sitio es una aplicación web que consta de todos los contenidos generados por PHP. Incluso en ese caso, limitada, si la mayoría de sus páginas PHP no contienen información sensible (como contraseñas de bases de datos en los archivos de configuración incluidos), entonces usted debe evitar hacer esto. Recuerde, cada vez que php-cgiwrap se llama un programa se debe ejecutar además del programa que se ejecuta sus scripts PHP. Esta sobrecarga adicional podría llegar a ser significativo.Usted puede poner estas líneas en un archivo .htaccess para un subdirectorio de su sitio, si es que contiene una aplicación web específica que tiene acceso a una base de datos en la mayoría de sus páginas. En otras palabras, si el saldo de PHP habilitado páginas que se sirven requieren ocultar las contraseñas, a continuación, no hace ninguna diferencia para envolver todos ellos.


 Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros

Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Related posts