En primer lugar:
- cree un usuario para ejecutar su código PHP, ya que no tiene más derechos de usuario de los necesarios, incluido el encarcelamiento dentro de su contexto de usuario
- configure suphp
- obtenga una guía de fortalecimiento para ubuntu y sígala a fondo
- configure apparmor
- limita el acceso de los usuarios y configura una herramienta de registro remoto
- implementar auditd para carpetas confidenciales
- configure SSL con un certificado válido (443) si su aplicación maneja información confidencial
Para MySQL, preferiblemente tienes una tabla a la que solo puedes agregar registros. Cada registro tiene un campo "eliminado", al que puede acceder el usuario de la aplicación mysql de este usuario. Este registro puede establecerse en Verdadero o Falso. Su usuario puede insertar filas pero no puede eliminar ninguna, también puede actualizar esos campos dentro de un registro que Debería actualizarse. La eliminación se puede hacer configurando Verdadero o Falso (su aplicación debe tener esto en cuenta).
Use la mayor cantidad posible de procedimientos almacenados, descargue tanta lógica de base de datos en su base de datos como pueda.
Configure un servidor de seguridad de aplicación web y HIDS .