carpeta y permiso de archivo.

2

Tengo un sitio web con una empresa de alojamiento web. Escribí una pequeña aplicación php / mysql, sin cargar archivos, solo administrando datos desde la base de datos y creando pdf con TCPDF. Hay carpetas como css y js pero nada más.

Como tengo control limitado sobre el host compartido, ¿cuál sería la mejor práctica para mantener los archivos seguros pero ejecutables?

Entonces digamos:

index.php
connect_db.php
page1.php
unctions.php
IMAGES folder
CSS folder
TCPDF folder  
.htaccess
php.ini

Actualización:

el servidor es un servidor Linux con PHP5.2 (opcional 5.3) y tengo espacio web ilimitado ... La razón principal por la que pregunto porque tuve un ataque y alguien logró poner alguna carpeta (nedbank) y algún formulario de correo electrónico Para phish datos personales. Ahora estoy construyendo todo el sitio desde cero y me gustaría cubrir todos los aspectos.

También dividí esta pregunta en más preguntas para que las personas puedan usar, así como recursos de buenas prácticas.

    
pregunta Andras Sebestyen 14.09.2011 - 11:25
fuente

1 respuesta

8

Recuerde que .php se está ejecutando en la pila de aplicaciones PHP en el servidor. Puede tener acceso a hacer más que solo un usuario que navega por el sitio web.

Estas son mis sugerencias (no una lista completa) para PHP en Apache con acceso limitado al servidor. Esperamos que esto te ayude a comenzar en la dirección correcta ...

Desinfección de llamadas a bases de datos

Al leer y escribir en una base de datos, desinfecte su entrada, especialmente si necesita la entrada de un usuario. También tenga cuidado con la creación de sentencias SQL sobre la marcha con la entrada proporcionada por el usuario. Permitir que un 'o un' o cualquier otro número de otro carácter en la entrada podría permitirle a un usuario inyectar sus propios comandos para decir consultar la tabla del usuario. Si es posible, restrinja la entrada del usuario a-z, A-Z, 0-9 ya que esto es generalmente seguro.

Aquí hay buenas cosas que debe saber si va a escribir PHP para su sitio web.

enlace

Archivos .htaccess de Apache

Además, puede aplicar algunos bloqueos correctos a su archivo .htaccess para evitar el uso no deseado o el uso incorrecto de los archivos de su sitio web.

enlace

Debería limitar los permisos de archivos a .htaccess si se configuraba algo como 644 (rw-r - r--). Pero para una capa adicional, también incluya lo siguiente en su archivo .htaccess para la raíz de su sitio web.

# Prevent access to .htaccess from web.
<Files .htaccess>
  Order Allow,Deny
  Deny from all
</Files>

Limitar permisos

Limita los permisos a lo que realmente necesitas. Por ejemplo, si no necesita ejecutar en php.ini, no lo conceda (probablemente debería estar configurado en 600). Si no está seguro, comience con un bajo nivel de permisos y vaya avanzando. No tardarás mucho en intentarlo y te ahorrarás el dolor de cabeza.

También tenga cuidado al ejecutar archivos de imagen y archivos que obviamente no deberían ejecutarse. Si alguien puede usar imágenes incrustadas en sus páginas para ejecutar el código, lo hará si usted lo permite.

Si necesita acceso para escribir un directorio como cargas, bloquee el acceso a los archivos que no son necesarios. Por ejemplo, si tiene un archivo PDF o un archivo de carga de imagen, los archivos .php probablemente no sean necesarios, así que bloquéelos.

<FilesMatch "\.(htaccess|ini|sh|php)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

Mejor aún, bloquee cualquier tipo de archivo excepto los archivos que necesita.

Order Allow,Deny
Deny from all

<FilesMatch "\.(jpg|gif)$">
  Order Deny,Allow
  Allow from all
</FilesMatch>

Deshabilitar la búsqueda en el directorio

Si no es necesario desactívalo. Darle acceso a las personas para ver qué archivos tiene puede darles información para atacarle mejor. Puede deshabilitarlo a través de un archivo .htaccess en el directorio specifc o en la raíz de su sitio usando algo como esto.

# Disable directory browsing
Options All -Indexes

Scripts y aplicaciones de terceros

Si usa scripts, aplicaciones o aplicaciones de terceros en su sitio web, asegúrese de que sean de una fuente confiable y manténgalos actualizados. Únase a las listas de correo si es necesario para asegurarse de saber cuándo saldrá una nueva versión. Una gran cantidad de ataques automáticos contra aplicaciones web que usan PHP y otros lenguajes de scripting utilizan vulnerabilidades conocidas que se han corregido previamente.

    
respondido por el Bernie White 15.09.2011 - 15:33
fuente

Lea otras preguntas en las etiquetas