我被要求维护Web-API的安全性(将在一分钟内得到澄清),但问题是我不允许进行任何结构更改,即使用任何基于令牌或基于用户的身份验证不可能。我提供了使用CORS的功能,但是移动应用程序和Web应用程序都使用相同的服务,因此也不是一种选择。最重要的是,我希望通过最少的更改来确保服务的安全性。
答案 0 :(得分:0)
您可以使用一个秘密的apiKey,然后对每个api调用都使用请求的整个主体,在末尾添加“-apiKey”,并通过sha1加密(或类似的一种方式加密)运行它,然后您将结果作为“校验和”放在标题中
在服务器端,您执行相同的操作,处理请求的正文,添加“-apiKey”并通过相同的单向加密方式对其进行运行,然后将结果与结果标头中的校验和进行比较。如果字符串匹配您允许的话,否则阻止呼叫。
这并没有太多实现,它并没有真正改变结构的任何内容,但是如果这是太多的“更改”,则不允许您这样做,那么唯一的选择是使用防火墙仅允许某些IP地址
答案 1 :(得分:0)
建议使用令牌方法,因为结构上没有太大变化。您需要添加一个中间件,点击所有API调用,然后在其中执行令牌验证。 Orrr,您可以使用Cookie来保护您的端点