Cinco consejos para utilizar JavaAPI
Todo el mundo sabe que se debe evitar implementar algoritmos como el cifrado. Del mismo modo, el resto de la pila de seguridad de su aplicación es la misma, lo que puede resultar costoso y arriesgado. Puedes cometer algunos errores. Desde 1999, se han liberado 89.373 CVE (Vulnerabilidades y Exposiciones Públicas). Y la mayoría de los descubridores descubiertos son personas muy inteligentes.
Podría pensar que manejar un caso de uso simple (como validar la contraseña de un usuario) es muy simple: todo lo que debe hacer es comparar un par de cadenas. Es un error pensar eso. Debe verificar los hashes de contraseñas, verificar la cantidad de intentos de inicio de sesión y mitigar los ataques de diccionario. Esto es sólo la punta del iceberg. Su mejor opción es utilizar bibliotecas o marcos maduros existentes, como Shiro o Spring Security de Apache, y dejar que estos marcos manejen varios problemas de seguridad complejos.
2. ¡Utiliza siempre TLS! ¡Asegúrese de utilizar TLS!
Solo se necesita una simple línea de código para que su aplicación requiera TLS (HTTPS/SSL), ¡todos deberían hacerlo! Si utiliza el marco Apache Hero, simplemente configure el atributo: [urls]/**=ssl. Si usa Spring Security, solo necesita llamar a un método al configurar HttpSecurity. http. requirechannel() cualquier solicitud(). En Spring Boot, solo necesitas configurar algunas propiedades. De la siguiente manera: servidor .puerto 8443. SSL. almacén de claves = ruta de clase: servidor de claves jks.
3. Utilice Spring Booti para crear un servicio web.
Spring Boot: Es una versión simplificada de la plataforma Spring, lo que hace que escribir aplicaciones Spring sea muy sencillo. Por ejemplo, las ideas mencionadas en el artículo "12 factores a considerar en las aplicaciones de aplicaciones" se pueden escribir con muy poco código. Si todavía estás codificando creando paquetes de guerra, vale la pena aprender Spring Boot. Se pueden usar tipos complejos y diferentes de aplicaciones usando Spring Booti, por ejemplo, se pueden usar anotaciones simples.
(@EnableResourceServer)) Simplemente cree un servidor de recursos OAuth o cambie su puerto mediante una propiedad simple: server.port 8090 Si no le gusta usar SpringBoot, puede usar Dropwizard para crear un servidor JAX. Pila de tecnología RS.
4. Monitorear aplicaciones e indicadores de rendimiento
Sin datos, es difícil encontrar errores en el programa. Spring Booti facilita la recopilación de datos de métricas mediante el uso de Actuator y solo requiere agregar una dependencia a la aplicación de la siguiente manera:
ltartifactld gt spring boot starter actuator lt/artifact LD gt;.
lt/dependencia gt;.
Luego puede verificar el estado de salud o las métricas de la aplicación ingresando /health o /metrics a través del navegador después de acceder a la dirección de la aplicación. El marco Dropwizard implementa la misma funcionalidad a través de Healthcheck y /metrics.
5. Proteger la información confidencial
Es cierto que las claves API no son seguras.
Las claves se envían por correo electrónico o se controlan mediante un sistema de gestión de código fuente. Quizás por eso parecen menos seguras que las contraseñas, pero son igual de sensibles. Si necesita almacenar la clave AP en un archivo, asegúrese de otorgar acceso limitado al archivo.
Por ejemplo, recomendamos almacenar los archivos YAML de Okta en un directorio privado y otorgar permisos de solo lectura al propietario del archivo. Chmod u = r, go-rwx ~/. okta/okta.yaml Si está creando una API para los usuarios de su aplicación, recuerde recordarles que coloquen el archivo SSH en su archivo ~/. Directorio ssh sin configurar permisos. GitHub los coloca en "Zonas de peligro", lo cual es muy útil para recordar a los usuarios.