Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 安全REST未经验证的帐户创建_Angularjs_Node.js_Rest - Fatal编程技术网

Angularjs 安全REST未经验证的帐户创建

Angularjs 安全REST未经验证的帐户创建,angularjs,node.js,rest,Angularjs,Node.js,Rest,我正在设计一个RESTAPI,我遇到了一个奇怪的问题。这个API的99%都是安全的,但是有一些函数需要公开访问。这些与帐户创建和初始密码设置有关。一旦拥有凭据,他们就可以访问API的其余部分 允许用户通过注册表单创建新帐户的端点未经身份验证。保护这个端点实际上是不可能的,因为我在nodejs之上使用AngularJS,并通过AJAX调用跟踪我的API。这意味着我不能在任何地方隐藏凭据以访问AccountCreation端点。目前,我让webform对另一个端点进行AJAX调用,并创建一个表示表单

我正在设计一个RESTAPI,我遇到了一个奇怪的问题。这个API的99%都是安全的,但是有一些函数需要公开访问。这些与帐户创建和初始密码设置有关。一旦拥有凭据,他们就可以访问API的其余部分

允许用户通过注册表单创建新帐户的端点未经身份验证。保护这个端点实际上是不可能的,因为我在nodejs之上使用AngularJS,并通过AJAX调用跟踪我的API。这意味着我不能在任何地方隐藏凭据以访问AccountCreation端点。目前,我让webform对另一个端点进行AJAX调用,并创建一个表示表单有效的令牌。提交后,验证该令牌,然后将其从数据库中删除。然而,这个令牌端点在代码中是明显可见的,所以没有太多的安全性。电子邮件验证用于“激活”帐户,然后向用户提供一次性链接以设置其初始密码,该密码也位于未经验证的端点上(但需要在电子邮件中发送令牌)

我想我担心的是有人滥发“CreateCount”端点,并创建了一堆帐户。事实上,我想他们也可以通过网络表单来实现这一点。这是一个合理的安全问题吗?大多数地方如何处理未经验证的帐户创建Web表单


编辑:最终应用程序将通过https运行

他们使用https。你可以加密,做一些肉眼看不懂的事情等等,但如果你不使用HTTPS连接,这些都不重要。HTTPS通信不会对页面源隐藏端点URL。帐户创建通常受IP限制,以降低此类攻击的有效性,并监控异常行为。如果您担心成为攻击目标,因为新帐户可能对攻击者有价值(例如,作为向其他用户发送垃圾邮件的平台),那么您并不孤单,需要了解网站(如SO)使用的各种技术,这些技术用于限制自动帐户创建的有效性。新帐户的价值较低,因为在客户入职流程完成之前,它基本上是无用的,这至少需要一个电话。我当然会考虑利率限制。