我要开发一个网络应用程序,很可能会使用Angular2来完成。由于该应用程序需要在服务器上存储数据,因此我需要一个后端,以便Web应用程序可以使用它进行读写。
但是如何防止他人从我的Web应用程序之外使用它呢?这似乎是不可能的?我在前端中使用的任何硬编码token、API密钥等都将通过查看代码可见于攻击者。即使通过混淆和压缩JS源代码可以使其更加困难,但它永远无法完全安全,对吧?
那么,我如何创建一个可供Web应用程序前端使用的后端,并同时限制其只能由我自己的前端使用呢?
如果不是普遍地可能,是否在某些特定条件下可能,例如如果Web前端是从运行后端的同一服务器加载的?我认为可以在前端脚本启动时启动服务器会话并动态生成前端的会话ID,但我想攻击者仍然可以轻松创建自己的客户端,他只需确保首先加载官方客户端并从中提取会话ID即可?
curl https://yousite.com
并使用脚本来获取所需的数据一样。但是,如果你处理敏感数据,可以在头部传递令牌以检查是否将数据发送给了已识别的用户。 - YounesM