我正在使用ASP.NET Core和angular 8(托管在一起)构建网页。我只想允许来自SPA的API请求。
在这一点上,我认为要创建某种只有前端和后端应用程序才知道的哈希规则。对于每个请求,我都会计算哈希并将其放在请求的标头中。收到请求后,我将再次计算哈希并将其与标头中提供的哈希进行比较。如果它们匹配,那就可以了。
我对它的安全性感兴趣,并且有什么方法可以破解它。
我是angular的新手,我也对是否有可能(在生产模式下)(由应用程序用户)编写某种js代码感兴趣,这将调用我的“发送请求”方法(即,不单击按钮) 。
编辑:
我在我的应用程序中使用基于标准jwt令牌的身份验证,因此如果用户未经身份验证,则无法访问api资源。我想要实现的是,经过身份验证的应用程序用户(开发人员)不应能够从其他来源发出请求,例如邮递员,C#代码,浏览器控制台。
我有一些“有价值的”数据,我希望它仅在我的网页上可见。我想消除窃取事实。
没有真正安全的解决方案可以满足您的需求。原因如下:
JavaScript代码始终可读。每个用户都可以读取和调试SPA以及添加的用于保护请求的任何逻辑,开发人员可以在自己的应用程序中查看和重新实现。您可以尝试让他们的生活更加艰难...仅此而已。
就是说:您不能在代码中包含秘密。如果开发人员调试您的代码,则在运行时加载的秘密将可见。
您的服务器看不到客户端应用程序是什么,因为本机应用程序将使用任何http标头,并且看起来完全像浏览器。
通用的“解决方案”是假设来自交互式请求中通常请求的数据量很少,以限制和阻止来自IP的请求数量。
简化生活的一种简单方法可能是切换到websockets(signalR)而不是http请求-假设标准搜寻器仅限于http。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句