Hay muchas cosas que considerar cuando se trata de seguridad en una aplicación. Como dijo Pascal, es una buena idea usar un marco popular que haya tenido varias personas que lo estén viendo.
Veo algunas áreas de preocupación con respecto a CakePHP.
El primer problema es el usuario final. Debería esperar que alguien haga algo tonto en cada página que construya.Algunos ejemplos de esto son:
- Una persona que hace clic en el botón enviar rápidamente una y otra vez. Esto puede sesgar o estropear su sistema de una manera si no tiene cuidado. La solución para esto no se basa en el marco, sino en su metodología de codificación y pruebas.
- SQL Injection y otras cosas malas. Cualquier campo en una página puede ser potencialmente abusado, por lo tanto, cada elemento de la forma debe ser desinfectado. CakePHP tiene métodos simples para encargarse de estos problemas de seguridad. http://book.cakephp.org/view/153/Data-Sanitization
- Las URL limpias son muy importantes. Nunca debe diseñar un sistema que permita a un usuario acceder directamente a las claves primarias de enteros. Por ejemplo, si tiene un sitio que tiene/show_user/2098, entonces alguien simplemente puede escribir show_user/2097 para ver la cuenta de otra persona. CakePHP le permite incorporar babosas o UUID con bastante facilidad para evitar que esto suceda.
En segundo lugar, debe preocuparse por los ataques relacionados con el código y los permisos en sí. Por ejemplo:
- Nunca utilice eval() o system() en su código de datos que pueden provenir del usuario final. Ha habido aplicaciones en el pasado escritas en Perl que han sido secuestradas debido a este problema.
- La estructura y los permisos de la carpeta son importantes en lo que respecta a la seguridad. Los usuarios nunca deberían tener acceso para ingresar a un directorio de escritura. Con CakePHP, la estructura de la carpeta está diseñada para que pueda apuntar a apache directamente a la aplicación/webroot. Esto significa que el directorio tmp está fuera de la ruta apache, lo que hace que el sistema sea un poco más seguro.
En tercer lugar, debe preocuparse por la protección de sus páginas de administración y quién tiene permisos para acceder a qué.
- CakePHP tiene un Auth y un componente Acl que le permite elegir qué usuarios acceden a qué páginas. Esto hace uso de Cake Sessions personalizadas que se pueden almacenar en una base de datos, mediante PHP o escritas en el sistema de archivos.
Le sugiero que lea algunos de los componentes importantes y asegúrese de configurarlos correctamente, para asegurarse de que haya creado una aplicación sin fallas de seguridad. Eche un vistazo a algunos de estos elementos mientras investiga más: http://book.cakephp.org/view/170/Core-Components