Estoy tratando de codificar un sitio web donde el usuario ingresa información y JavaScript la pasa al backend (node.js/express.js). No quiero que cualquiera pueda PUBLICAR el JSON en el servidor, solo el código del sitio web. No estoy seguro de cómo hacer esto, ya que no puedo usar claves de autorización porque estarían disponibles ya que el código es del lado del cliente.
El servidor usa express.js ejecutado en node.js y la interfaz es solo JavaScript activado desde un archivo HTML.
¡Cualquier ayuda apreciada!
Respuesta corta: no puedes.
Respuesta larga:
Una vez que su API es pública en Internet, todo puede conectarse a ella siempre que tenga capacidades de red. Telnet, HTTP, programa Go, scripts de Node.js, scripts de Python, etcétera.
Puede limitar su acceso a la API utilizando la política CORS, el encabezado de autorización, el encabezado del agente de usuario, el encabezado de referencia, el limitador de velocidad y similares, pero es solo un elemento disuasorio y un usuario malintencionado puede falsificar todo.
En mi opinión, no deberías preocuparte por eso, de verdad. Si de verdad quieres seguridad , y no quieres que otros accedan a tu API, considera implementar un sistema de autenticación de usuarios con JWT o sesiones con cookies seguras. Es la mejor manera de proteger sus terminales.
Consulte estos artículos de OWASP a continuación para obtener más información sobre la seguridad de API.
Si desea obtener más información sobre las cookies seguras y la autenticación de usuarios en Express, puede consultar los siguientes artículos:
También tengo otro buen artículo, está en Go, pero también puedes adaptar los conceptos en Express.js. Aquí está el enlace .