首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >隐藏API URL并防止暴力攻击

隐藏API URL并防止暴力攻击
EN

Stack Overflow用户
提问于 2015-12-16 23:00:59
回答 4查看 2.7K关注 0票数 0

我刚刚在node中构建了一个API。

我在我的angular应用程序中调用此API来执行登录和注册等基本操作,例如:

代码语言:javascript
运行
复制
self.register = function(username, password) {
  return $http.post(API + '/auth/register', {
      username: username,
      password: password
    })
}

所以我的问题是,任何人都可以看到这个API URL,那么是什么阻止他们在那里随意创建用户。(注意API在我的JS文件中是一个常量)。登录也是如此,用什么来阻止某人暴力破解数百万个用户名和密码组合。

你有什么建议来确保这个安全吗?

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2015-12-16 23:18:47

您可以使用一些模块保护,例如将nginx proxy放在nodejs API前面,并使用例如limit_req DDoS:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

对于暴力破解,你可以实现一些锁定逻辑,在错误数量之后,将阻塞帐户一段时间,例如15-30分钟,甚至需要管理员操作。

对于需要登录的API,可以使用token保护。应在调用身份验证API时颁发令牌,并在响应中通过仅HTTP安全cookie设置令牌。然后,您可以在API请求标头中传递此令牌,在nodejs中每次执行受保护的API之前,只需检查它是否有效,如果不是,则拒绝调用。

票数 5
EN

Stack Overflow用户

发布于 2015-12-17 00:56:49

在恐龙上加1。

如果你生活在云端,除了使用nginx之外,还有一个更好的基于云端的替代方案--使用云域防火墙(web application firewall)作为你的DDoS缓解层。例如,查看Incapsula和CloudFlare。

如果DDoS对您来说是一个严重的问题,并且您愿意支付防御它的费用,这是我绝对会留给专家的一个问题。

票数 1
EN

Stack Overflow用户

发布于 2016-01-15 12:49:51

你问的是注册滥用和登录保护,基本上是:

如何减轻帐户创建automation?

  • How以减少用户/密码猜测?

谢天谢地,这些都是已经解决的问题。

为了避免注册“猛烈抨击”,你需要打乱自动化。这可以通过各种方法来实现,从宽松到严格:

如果应用程序接口仅供特定的应用程序/浏览器访问,您可以通过传递CAPTCHA

  • Validate E-

  • address

  • Require私人敏感详细信息作为身份证明(例如,电话号码、credit-card)

),过滤掉所有其他CAPTCHA

  • Validate注册

这样做的好处是,1-3是可以轻松卸载到现代Web Application Firewall的任务,而不需要任何额外的服务器端编码或额外的负载。

对于“登录保护”,除了上述方法1-3外,还推荐两种方法:

  1. Two-Factor Authentication (2FA) -这基本上意味着除了他的“常规”密码之外,用户还需要输入另一个身份验证令牌。此令牌可以由TOTP (参见Google Authenticator)生成,或由服务器通过短信、电子邮件、电话呼叫、etc.
  2. API Keys发送的代码-这被认为是更安全的,因为API通常是非常长的唯一字符串,具有非常好的熵(与用户/通行证组合相比)。有关API密钥here.

的更多信息

在我离开之前,我要说一句话:我之前看过一些关于DDoS的评论,我再怎么强调也不为过--你自己是无法减轻DDOS的。但这是针对不同的线程的。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34315318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档