¿Qué es la seguridad?
La seguridad es una medida relativa, no un estándar absoluto.
Desafortunadamente, la mayoría de los proyectos de software enumeran la seguridad como un requisito simple. ¿Es seguro? La respuesta a esta pregunta es tan subjetiva como preguntar si algo está caliente.
Los gastos generales para lograr la seguridad deben ser razonables.
Lograr un nivel adecuado de seguridad es sencillo y económico para la mayoría de las aplicaciones. Sin embargo, si la información que necesita protegerse es muy valiosa o los requisitos de seguridad son muy estrictos, deberá pagar más para aumentar el nivel de seguridad. Este costo debe incluirse en el presupuesto del proyecto.
La facilidad de uso debe ser razonable para lograr la seguridad.
Un fenómeno muy común es que, si bien la seguridad de una aplicación WEB aumenta considerablemente, la facilidad de uso también se reduce considerablemente. Las contraseñas, los tiempos de vencimiento de las SESIONES y los controles de acceso causarán obstáculos a los usuarios legítimos. A veces es necesario proporcionar la seguridad adecuada para una aplicación, pero esta no es la única solución para todas las aplicaciones. Es aconsejable prestar más atención a los usuarios legítimos al hacer cumplir las reglas de seguridad.
La seguridad debe ser parte del diseño.
Si no considera la seguridad al diseñar su aplicación, está destinado a encontrar continuamente nuevas vulnerabilidades de seguridad. Los programas cuidadosamente escritos no pueden compensar un diseño deficiente.
Los pasos básicos de la aplicación son principalmente para usuarios legítimos.
Un diseño seguro es sólo una parte de la solución. Durante el desarrollo, cuando comienza la codificación, es necesario considerar a los usuarios legítimos de la aplicación. Generalmente, el objetivo es hacer que la aplicación funcione según lo previsto, aunque es necesario implementar una funcionalidad adecuada de la aplicación, lo que no hace que la aplicación sea más segura.
Entrénate.
Aquellos de ustedes que están leyendo esta guía están preocupados por la seguridad y, aunque parezca un cliché, este es un paso fundamental. Hay numerosos recursos disponibles en la web o en libros, y muchos están incluidos en el repositorio de PHP Security Alliance: http://phpsec.org/library/
Primero, filtre todos los datos externos.
El filtrado de datos es la piedra angular de la seguridad de las aplicaciones WEB en cualquier idioma y en cualquier plataforma. Inicializar variables y filtrar todos los datos obtenidos desde el exterior permite obtener el doble de resultado con la mitad de esfuerzo y, a bajo coste, el gestor previene posibles vulnerabilidades importantes de seguridad. Una lista blanca es mejor que una lista negra. Esto significa que todos los datos deben considerarse ilegales hasta que se pueda demostrar que son legítimos (mejor que considerar todos los datos legales hasta que se pueda demostrar que son ilegales).