¿Cuáles son los mejores recursos para proteger las API WEB?

Esta es una pregunta muy compleja y requiere trabajar en diferentes niveles:

Primero a partir de: nivel del sistema y asegurar el protocolo, el nivel web y los servidores, después de pensar que hizo todo el trabajo, use el servicio de escaneo gratuito #Commodo para verificar que lo hizo bien.

El segundo nivel es la API en sí de manera genérica, utilizando tokens, mecanismo para producir tokens (oauth u otro), permisos, caducidad de tokens, etc. Debe tener los elementos correctos para autenticar las solicitudes, asegurándose de que provengan del lugar correcto y de cualquier solicitud. puede identificarse y atribuirse a una entidad autorizada (tokens, etc.). Esto se puede copiar fácilmente de las API abiertas existentes, como las API de Facebook y similares.

El tercer nivel es la lógica de la aplicación, asegurándose de que los datos enviados fuera del sistema no utilicen identificadores de objetos internos que puedan ser manipulados por la API usando la parte o la aplicación, sin revelar identificadores internos de objetos importantes, sin depender de la información proveniente del cliente información (como el precio del producto) pero obteniendo la información nuevamente del origen del objeto (db) y aplicando esta información en las operaciones. Otra cosa importante es la operación de alcance a un alcance limitado específico que está determinado por el token y sus permisos, si se proporciona un token de operación de API, debe usarse para identificar el alcance correcto (como el usuario) y usar la identificación de esa entidad en cada posible operación internamente, incluso si es redundante, se asegurará de que nunca vaya más allá del alcance de lo que permite el token e incluso si se ejecuta una operación maliciosa o pirateada, siempre estará en el contexto de una entidad única y no del sistema amplio.

More Interesting

¿Por qué los desarrolladores de PHP aman a Laravel? ¿Cuáles son las cosas que distinguen a Laravel de otros frameworks PHP?

A partir del tercer trimestre de 2014, ¿cuáles son todos los pros y los contras entre Play (Scala) y meteor.js (node.js / JavaScript) para crear aplicaciones web?

¿Cómo hace YouTube un seguimiento de todos los videos que te gustaron?

¿Alguien se ha convertido en un buen desarrollador web sin mucho conocimiento de las matemáticas?

¿Qué idioma debo aprender para el desarrollo web en 2018 y más adelante (Ruby on Rails, AngularJS, NodeJS, PHP, ASP.NET, JavaScript y Java EE) GitHub, trabajando con Twitter, BootStrap, WordPress o Drupal CMS?

¿Cuáles son las ventajas de node.js?

¿Cuál es su opinión sobre el último desarrollo de PHP, es decir, la versión 5.5? ¿Seguiría considerando php como programación de nivel de principiante y un lenguaje solo para construir prototipos?

¿Es más barato pagarle a alguien para configurar un sitio web o aprender a codificar desde cero? ¿Qué es más eficiente en términos de equilibrio de tiempo y dinero?

¿Cómo creo un buen sitio web interactivo que pueda actualizar y publicar datos regularmente?

¿Dónde encuentro el mejor tutorial para Angular JS 2?

¿Es aceptable ser un programador (desarrollador web) que aumenta e integra principalmente las bases de código existentes en un proyecto en lugar de construir cosas desde cero?

¿Cuáles son los frameworks / tecnologías relacionadas con Java que están actualmente de moda y más 'en demanda'? ¿Por qué?

Cómo hacer texto de marquesina en WordPress

¿Debo aprender Meteor?

En 2017, ¿debo aprender el método JavaScript o jQuery para hacer una solicitud AJAX?