Javascript “保护”;“后端”;角度源文件

Javascript “保护”;“后端”;角度源文件,javascript,angularjs,go,Javascript,Angularjs,Go,我有一个角度系统,只与我的Go后端进行对话,与Gorilla进行登录会话 我开始在我的管理环境中工作,但我想知道保护它的角度代码的最佳实践是什么。这对安全性来说并不是一个真正的问题,因为即使是管理代码也只有逻辑,没有危险的数据,但我还是不想让它对世界上的任何人开放 我正在考虑做以下事情 我有一个mux路由器,它可以捕获我所有的资源调用(与Yeoman一起部署),我想知道我会为images/admin、scripts/admin和style/admin设置3个例外。只有在有效会话处于活动状态时,才

我有一个角度系统,只与我的Go后端进行对话,与Gorilla进行登录会话

我开始在我的管理环境中工作,但我想知道保护它的角度代码的最佳实践是什么。这对安全性来说并不是一个真正的问题,因为即使是管理代码也只有逻辑,没有危险的数据,但我还是不想让它对世界上的任何人开放

我正在考虑做以下事情

我有一个
mux
路由器,它可以捕获我所有的资源调用(与Yeoman一起部署),我想知道我会为
images/admin
scripts/admin
style/admin
设置3个例外。只有在有效会话处于活动状态时,才能提供这些路径。否则将抛出401标题

这是一个好的解决方案还是有更有效的方法来实现这一点?

如果您需要一个有效的(最好是授权的)会话来获取一些静态资产(JS代码、样式表、图像……),您需要通过应用程序,您使用的堆栈根本不相关

我要做的是将资源指向由应用程序控制的某个对象,然后使用
X-Sendfile
X-Accel-Redirect
头返回401或空响应,以便将实际服务卸载到您现有的任何反向代理上。

如果您需要有效的(最好是授权的)代理会话获取一些静态资产(JS代码、样式表、图像等),您需要通过应用程序,使用的堆栈根本不相关

我要做的是将资源指向由应用程序控制的某个对象,然后使用
X-Sendfile
X-Accel-Redirect
头返回401或空响应,以便将实际服务卸载到您现有的任何反向代理上。

如果您需要有效的(最好是授权的)代理会话获取一些静态资产(JS代码、样式表、图像等),您需要通过应用程序,使用的堆栈根本不相关

我要做的是将资源指向由应用程序控制的某个对象,然后使用
X-Sendfile
X-Accel-Redirect
头返回401或空响应,以便将实际服务卸载到您现有的任何反向代理上。

如果您需要有效的(最好是授权的)代理会话获取一些静态资产(JS代码、样式表、图像等),您需要通过应用程序,使用的堆栈根本不相关


我要做的是将资源指向由应用程序控制的某个对象,然后返回401或带有
X-Sendfile
X-Accel-Redirect
头的空响应,以便将实际服务卸载到现有的任何反向代理上。

您可以强制使用https,并使用基本身份验证。我们在这里实施这项技术,这是一种非常有效的方式。(示例:)@JoaozitoPolo,但在某个时候,您需要检查授权。无论您采用什么方法来进行authroization+文件服务,最终都会得到一些(最小的)应用程序代码,然后将服务转移到更高效的linke Nginx上。“保护”他们免受什么影响?你的威胁模型是什么?@这里重写了我们在基本身份验证上发送一个令牌(用于识别用户)和用sha256编码的密码。记住,使用https。。。然后,在服务器上,它只是一个选择来验证用户。。。它可以直接在nginx上实现。。。nginx将成为身份验证的“防火墙”,如果无法从外部访问,后台服务器不需要任何身份验证规则。我强烈建议不要从nginx访问数据库,并强烈建议不要在多个地方分发身份验证和授权码。OP要求提供一种保护管理相关资产的方法,因此这是一个授权问题(特定用户可以做什么),因此这属于他们的应用程序业务逻辑领域。如果“管理员”的定义发生变化怎么办?如果它不再存在于SQL数据库中呢?(LDAP访问,或者只是存储在redis实例会话中的数据)如果授权在几个看似不相关的位置稀疏,则不能指望授权可以长时间工作。您可以强制使用https,并使用基本身份验证。我们在这里实施这项技术,这是一种非常有效的方式。(示例:)@JoaozitoPolo,但在某个时候,您需要检查授权。无论您采用什么方法来进行authroization+文件服务,最终都会得到一些(最小的)应用程序代码,然后将服务转移到更高效的linke Nginx上。“保护”他们免受什么影响?你的威胁模型是什么?@这里重写了我们在基本身份验证上发送一个令牌(用于识别用户)和用sha256编码的密码。记住,使用https。。。然后,在服务器上,它只是一个选择来验证用户。。。它可以直接在nginx上实现。。。nginx将成为身份验证的“防火墙”,如果无法从外部访问,后台服务器不需要任何身份验证规则。我强烈建议不要从nginx访问数据库,并强烈建议不要在多个地方分发身份验证和授权码。OP要求提供一种保护管理相关资产的方法,因此这是一个授权问题(特定用户可以做什么),因此这属于他们的应用程序业务逻辑领域。如果“管理员”的定义发生变化怎么办?如果它不再存在于SQL数据库中呢?(LDAP访问,或者只是存储在redis实例会话中的数据)如果授权在几个看似不相关的位置稀疏,则不能指望授权可以长时间工作。您可以强制使用https,并使用基本身份验证。我们在这里实施这项技术,这是一种非常有效的方式。(示例:)@JoaozitoPolo,但在某个时候,您需要检查授权。不管用什么方法