我有下面的url来调用API网关背后的服务: https://<随机密钥>. enabled .amazonaws.com/prod/.,到目前为止,我还没有启用API密钥和授权。
问:它足够安全吗?某人。说这是不安全的,因为任何人都可以使用url调用我的服务在url后面,而不仅仅是我。一种解决方案是,在调用url时,我可以启用API键并将API键作为请求头附加。另一种解决方案是使用AWS、科尼托等。
为什么不安全?<随机密钥>已经是一种证书了吗?只有我知道这个<随机密钥>并且我只给我信任的人使用<随机密钥>的api url,没有其他人知道什么是url的<随机键>。如果某人。真的想窥探<随机密钥>,那么附加API密钥也没有帮助,因为如果这个人可以窃取<随机密钥>,他也可以窃取API密钥。
我知道API网关也可以使用AWS认知来进行身份验证。也就是说,当一个人访问url时,他将被要求输入凭据(用户/密码),但同样,该凭证也可能被窃取,就像如何窃取<随机密钥>和API密钥一样。
IMO,使用<随机密钥>和API密钥和凭证是同一回事.因此,我认为我只需要将API网关设置为公共的,而不需要启用API网关和AWS cogonito。
我说的对吗?有人能解释为什么拥有API网关或AWS认知比不使用它们更安全吗?
另一个问题与上面的问题有关:由于url使用https,当请求头像API密钥和用户名/密码这样的内容被加密时,url本身(包括<随机密钥>)会不会被加密?
发布于 2019-03-31 00:55:51
最重要的安全因素总是风险。我们永远无法建立一个完全安全的系统,我们只能尝试平衡攻击系统的成本和被破坏的成本。因此,在做其他事情之前,我会问:如果有人知道您API的URL,那么有什么危险呢?
你说得对--这是一种最低限度的安全措施。仅此而已。
问自己一组问题:
从那以后,问题就会继续升级。这都取决于ROI --你所保护的东西的价值是什么,攻击的表面积是什么,被破坏的风险是什么?最重要的是你的客户和用户的信任。作为专业人士,我们必须保护我们所受委托的信息的完整性。
另一个问题是在HTTPS (TLS/SSL)下,什么是受保护的,什么是不受第三方侦听器保护的?简单地说,如果您请求foo.com/bar,任何想知道的人都可以看到主机名(foo.com),但是路径(/bar)是不可见的;而cookie、标头和请求中包含的任何其他内容都是安全的。
https://stackoverflow.com/questions/55436929
复制相似问题