Cómo hacer que una aplicación web sea tan segura como Java hecha en PHP

La seguridad no tiene relación con Java o PHP.

Para hacer algo ‘seguro’ (que es un concepto), debe aplicar un conjunto físico de reglas.

Por ejemplo, esta aplicación se puede asegurar apoyando:

  • Cadenas seguras
  • Contraseñas cifradas
  • Comprobaciones de autorización
  • Verificaciones de certificados.
  • Búsqueda en la base de datos del usuario, etc.
  • No permita más de 3 inicios de sesión como medida de seguridad.

Como puede ver, la seguridad es subjetiva y está definida por un conjunto de criterios aplicables para el proyecto en contexto. Un software bancario puede ser más estricto en prácticas de seguridad que un sitio web de juegos.

También puede ver que ninguno de los criterios anteriores menciona “cómo lograr esto”. Todos hablaron de ‘¿qué hacer?’

La parte ‘cómo’ puede hacerse mediante hardware o software y en software utilizando Java, PHP, C #, python, cualquier idioma. De forma nativa o utilizando módulos y bibliotecas auxiliares.

No hay un idioma que sea oficialmente calificado como más seguro ni nada. Esos son todos los detalles de implementación.

“Seguro” es una palabra cargada que significa todo tipo de cosas.

Pero bajo cualquier conjunto de requisitos de seguridad, no dudo que alguien con el conocimiento adecuado pueda satisfacerlos tanto en un contexto PHP como en un contexto Java.

Lo que dudo es que esa experiencia se encuentre tan fácilmente en el mundo PHP como en el mundo Java. Simplemente hay un nivel mucho más alto de sofisticación que rodea a Java (ciertamente comparado con PHP) que se refleja en todo tipo de áreas. (¡Solo mire la gama de bibliotecas Java!) La seguridad es un tema tan importante y a menudo desafiante que preferiría buscar experiencia en el ecosistema Java que en PHP.

PHP fue creado para ser fácil de aprender y flexible, aunque ha evolucionado a niveles de sofisticación no anticipados originalmente (algo así como JavaScript). Java fue creado para ser poderoso, y nunca escuché a nadie decir que era fácil de aprender. Hay una diferencia en las culturas que rodean estas dos tecnologías / idiomas que reflejan esto.

Tienes que tomar el lugar de un posible hacker.

Los hackers quieren acceso a la base de datos, por ejemplo. Así que asegúrese de descifrar todas sus contraseñas.

Los hackers intentan entrar con la inyección SQL. Asegúrese de que su entrada esté limpia antes de ingresar a la base de datos.

Los hackers prueban CSS (Cross Site Scripting). Nuevamente, asegúrese de que sus cuadros de entrada sean seguros (usando algo como entidades html).

Hay otras áreas que debe tener en cuenta. Simplemente busque una lista en Google sobre los tipos de ataques web más utilizados 🙂

En mi opinión, lo más importante que puede hacer para que su aplicación web sea segura es usar un marco que tome en serio la seguridad. En PHP, podría usar un marco como Laravel, Zend o Symfony. Luego, asegúrese de seguir las mejores prácticas del marco con respecto a la seguridad y mantener actualizado el código de su biblioteca. Una cosa que definitivamente NO debe hacer es intentar implementar sus propias implementaciones de seguridad.

Puede usar un Framework para maximizar la seguridad de la aplicación, como Laravel, que tiene muchas bibliotecas diseñadas para manejar la mayor parte de la seguridad de la aplicación y la actualizan todo el tiempo para mantenerla lo más segura posible.