2012-01-11 28 views
9

Soy un desarrollador de Java que se dirige hacia el camino que lleva a App Security, y me encontré con la organización OWASP y su API complementaria Java, ESAPI.Java Security contra ESAPI

En otra pregunta que hice en este sitio hace meses, se me indicó que ESAPI es un jugador importante en la industria de la aplicación de código abierto.

Lo que me pregunto ahora es, estoy seguro de que ESAPI se superpone con el modelo de seguridad incorporado de Java (rooteado en javax.security.auth) en las áreas de autenticación/autorización, y tal vez en otras áreas. ¿Pero hay áreas de aplicación seg que ESAPI aborda claramente que no se pueden lograr si uno se apega estrictamente a la API de seguridad de Java?

Básicamente, estoy preguntando si tiene sentido para mí aprender ESAPI si todas sus ventajas/características ya están cubiertas en alguna API Java existente. ¡Gracias por adelantado!

Respuesta

7

AFAIK, ESAPI también utiliza API de Java y agrega envoltorio específico para amenazas del mundo real. Por ejemplo, WAF (firewall de aplicaciones web), para lograr esto con la API de Java, terminará escribiendo gran cantidad de código, lo cual fue hecho por ESAPI y muy bien envuelto como API, por lo tanto, ahora si desea hacer verificaciones de WAF, puede simplemente impleméntelo con un par de llamadas a métodos.

En palabras simples, ESAPI es algo así como la biblioteca contenedora (API incorporada de Java), que reduce la reinvención de la rueda otra vez y ayuda a contrarrestar las amenazas de seguridad del mundo real.

Si ve este ESAPI API URL, puede identificar fácilmente cómo ESAPI desarrolló API para contrarrestar cada posible amenaza.

+0

Gracias thinksteep! ¿Esto significa que al usar ESAPI en toda su extensión, no necesitaría implementar o configurar ningún elemento específico de la API de Java, como un SecurityManager?Básicamente, estoy preguntando si el uso de ESAPI puede cubrir todas las bases proporcionadas por el modelo de seguridad incorporado de Java. ¡Gracias de nuevo! – IAmYourFaja

+0

Puede terminar con la configuración de ESAPI. Recuerde que no puede evitar completamente las configuraciones. Esos son los parámetros de conducción para cualquier software. – kosa

2

Tengo solo una familiaridad pasajera con Java y ESAPI, siendo un desarrollador de .NET. Sin embargo, como un desarrollador rabiosamente paranoico con un enfoque intenso en la escritura de código seguro (porque he escrito algunas cosas realmente horribles) es algo que he visto.

En mi opinión, vale la pena aprender esto. Es absolutamente posible escribir un buen código sin estos paquetes, pero el uso de estos paquetes hace que escribir un buen código sea más fácil.

En el lado de .NET, tenemos algo similar que yo uso: la biblioteca de patrones y prácticas de Microsoft. Por lo que entiendo Java ESAPI sirve a un propósito similar, que es la siguiente:

Proporciona un conjunto de fácil de usar métodos queya utilizan las mejores prácticas bajo el capó, por lo que no lo hace tengo que preocuparme mucho por eso.

Por ejemplo (y esta es solo una pequeña porción de lo que se necesita para escribir aplicaciones seguras), usando ADO.NET y Java es muy fácil escribir Sentencias SQL conteniendo las entradas del usuario en cadenas (malas) y también como consultas parametrizadas fáciles de usar (buenas). Al usar las API, se exponen los métodos que usan los buenos patrones debajo del capó. es más fácil obtener un nuevo desarrollador a la velocidad, y asegurarse de que no se vuelva "descuidado" al mismo tiempo que le permite escribir menos código.

+0

¡Gracias por tan buena respuesta, Dave! Por favor, vea mi comentario debajo de la respuesta de @ thinksteep. ¡Tengo la misma pregunta para usted! ¡Gracias de nuevo! – IAmYourFaja

+0

No puedo responder ese comentario específicamente, pero en general no creo que cubra *** todas las bases para ti. Ningún marco es perfecto o cubre todo. Veo esto como una buena herramienta para tener en tu conjunto de herramientas. Depende de usted ser quien aprenda a manejar las herramientas con habilidad. Eso significará profundizar y aprender el ESAPI usted mismo para encontrar respuestas como esa. Básicamente respondí tu pregunta final: "si tiene sentido para mí aprender ESAPI" – David

3

Una ventaja/fortaleza clave de ESAPI es su validación de entrada y capacidades de desinfección de salida, que, AFAIK, las clases de seguridad de Java no abordan actualmente. ESAPI se dirige específicamente al dominio de seguridad de la aplicación web, y es aquí donde se destaca.