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.