¿Por qué es que un servlet es más seguro que PHP?

Lo mejor es mirar la lista de los 10 principales riesgos de seguridad de OWASP:

https://github.com/OWASP/Top10/r…

Lo primero que notará es que son independientes del lenguaje de programación.

Ni PHP ni Java son más seguros que otro, realmente. Es su aplicación la que será su principal riesgo, su entorno de servidor, los parches del sistema operativo.

La seguridad es muy, muy difícil de corregir. Desafortunadamente, no puedes hacerlo simplemente eligiendo un idioma. Es un tema mucho más amplio.

Para entrar en la mentalidad correcta, mira el número uno de OWASP. Inyecciones Comience asegurándose de que ninguna parte de su aplicación pueda tener un ataque de inyección SQL / HQL / JavaScript contra ella.

Por ejemplo, convierta en una regla de desarrollador que el acceso a la base de datos SQL * debe * hacerse solo a través de declaraciones preparadas.

Ahora ha detenido un vector de amenaza de seguridad. Hasta que alguien más en su equipo cambie el código de su aplicación y se olvide. Quizás podría usar algo como PMD para buscar palabras clave reveladoras que muestren que esto no se ha hecho.

Pero esta es la escala del desafío que implica mantener las aplicaciones seguras.

Algunos consejos diarios que pienso mientras codifico son:

  • Lista blanca
  • acceso restringido
  • evitar técnicas inseguras conocidas
  • escapar
  • nunca confíes en la entrada del usuario
  • revalidar siempre en el servidor

Pero no tengo la ilusión de que solo, eso no es suficiente.

Vi una demostración de un tipo con una aplicación web de prueba que extrae toda la base de datos de un formulario de inicio de sesión. Solo tenía los campos de nombre de usuario y contraseña.

Al medir el tiempo de respuesta y deliberadamente generar errores en la base de datos, fue capaz de extraer todo el esquema y cada fila de cada tabla, a través de ese formulario.

Peor aún: todo eso se hizo con una herramienta de código abierto, automáticamente, en menos de cinco segundos.

De miedo.

¿Quién dijo algo acerca de que los servlets son más seguros?

En primer lugar, si un hacker tiene acceso a su directorio, podría reemplazar fácilmente su archivo de clase de Java con el suyo y modificar su código php existente. Si le preocupa la seguridad, ningún idioma es más “seguro” que otro. Tiene que entender que todo se trata de cómo implementar su sistema. Piense en todas las posibles entradas que alguien puede alimentar a su sistema y luego piense en todas las posibles rutas de estado que podría crear.