我是否应该允许在没有令牌或令牌的情况下访问公共API

时间:2017-04-07 14:28:10

标签: java spring spring-security spring-security-oauth2

我正在使用Spring安全性,我们使用令牌对用户进行身份验证后进行身份验证和授权。我们的网站访问者也会使用一些API。

我是否应该允许访问者通过提供公共令牌来访问这些API(通过点击特定的URL来访问此公共令牌)

OR

我应该允许访问者在没有任何令牌的情况下访问API吗?

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

如果您正在尝试提供公钥(或令牌)来访问完全无用的非安全API。试着将它们从Spring Security中排除。

http.authorizeRequests().antMatchers("/publicApis/*").permitAll()

如果您更关心像Man In Middle这样的安全攻击,那么您可能需要考虑使用基于API签名机制(Hash / Digest)的机制来保护公共API,以便为请求创建签名。这样可以避免请求被篡改。

答案 1 :(得分:1)

正如n00dl3所说,这取决于你是否关心每个用户对你网站的所作所为。话虽如此,如果您关心,请记住,出于安全考虑,没有可靠的方法来跟踪每个匿名用户。

匿名用户总能找到一种方法来欺骗你用来跟踪它们的任何东西,无论是IP,cookie,用户代理等。即使你给他们一个令牌,他们也可以随时请求一个新的令牌。是时候掩饰他们的活动了。