【发布时间】:2018-01-16 19:46:56
【问题描述】:
我可以采取哪些步骤来防止未经授权访问我们的 API(如果确实需要)?
背景
下图说明了我们正在实施的微型网站,以及我们提供的 HMAC API(用于多种目的),它将商业敏感数据返回给经过身份验证的消费者。箭头代表有意(绿色)和无意(红色)的通信。
HMAC API 用于地址自动完成。微型网站没有登录名。该页面具有地址输入。要启用自动完成,页面会在每次击键后对控制器进行 AJAX GET 调用。对于每个 AJAX GET 调用,控制器都会构造 HMAC 并向 HMAC API 发出请求。
问题
我目前看不到任何阻止使用 AJAX GET 方法的东西。
注意事项
我已经read 说 AnitForgeryTokens 在 GET 方法上没有用,但是您可以通过将其转换为 POST 来解决这个问题。这听起来有点难看,但由于这只是一个微型网站(即我们将在一个月左右后将其丢弃),我已经准备好忍受丑陋的安全性。
七年后,这仍然是最好的方式吗?
【问题讨论】:
-
@Amy,我不认为 AJAX 调用可以通过身份验证,因为没有页面身份验证。但也许我错过了什么?
-
@Amy,令牌不是必须嵌入到页面中吗?因此可能被盗?
-
@Amy - cookie/embedded 没有任何区别,因为攻击者可以请求我们的页面,获取令牌,然后将其附加/嵌入到他的意外请求中。
标签: asp.net-mvc hmac antiforgerytoken