仅允许来自SPA的api请求

美国广播公司

我正在使用ASP.NET Core和angular 8(托管在一起)构建网页。我只想允许来自SPA的API请求。

在这一点上,我认为要创建某种只有前端和后端应用程序才知道的哈希规则。对于每个请求,我都会计算哈希并将其放在请求的标头中。收到请求后,我将再次计算哈希并将其与标头中提供的哈希进行比较。如果它们匹配,那就可以了。

我对它的安全性感兴趣,并且有什么方法可以破解它。

我是angular的新手,我也对是否有可能(在生产模式下)(由应用程序用户)编写某种js代码感兴趣,这将调用我的“发送请求”方法(即,不单击按钮) 。

编辑:

我在我的应用程序中使用基于标准jwt令牌的身份验证,因此如果用户未经身份验证,则无法访问api资源。我想要实现的是,经过身份验证的应用程序用户(开发人员)不应能够从其他来源发出请求,例如邮递员,C#代码,浏览器控制台。

我有一些“有价值的”数据,我希望它仅在我的网页上可见。我想消除窃取事实。

克里斯多夫·吕岑

没有真正安全的解决方案可以满足您的需求。原因如下:

  • JavaScript代码始终可读。每个用户都可以读取和调试SPA以及添加的用于保护请求的任何逻辑,开发人员可以在自己的应用程序中查看和重新实现。您可以尝试让他们的生活更加艰难...仅此而已。

  • 就是说:您不能在代码中包含秘密。如果开发人员调试您的代码,则在运行时加载的秘密将可见。

  • 您的服务器看不到客户端应用程序是什么,因为本机应用程序将使用任何http标头,并且看起来完全像浏览器。

通用的“解决方案”是假设来自交互式请求中通常请求的数据量很少,以限制和阻止来自IP的请求数量。


简化生活的一种简单方法可能是切换到websockets(signalR)而不是http请求-假设标准搜寻器仅限于http。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅允许来自外部网络的api

来自分类Dev

仅允许来自外部网络的api

来自分类Dev

django:如何仅允许来自表单的发布请求?

来自分类Dev

仅当请求来自其他特定网站时才允许登录网站

来自分类Dev

仅允许来自WebAPI 2中本地计算机的请求

来自分类Dev

Laravel 4 API不允许来自外部站点的POST请求

来自分类Dev

只允许来自特定域的请求

来自分类Dev

允许来自特定域的 POST 请求

来自分类Dev

仅接受来自授权 URL 的请求

来自分类Dev

仅允许来自标准输入的数字(读取命令)

来自分类Dev

仅允许来自自定义客户端的连接

来自分类Dev

如果仅来自特定页面,则允许访问页面

来自分类Dev

可以允许来自HTTPS网站的HTTP请求吗?

来自分类Dev

Web API仅允许单个异步任务

来自分类Dev

在REST API中仅允许GET

来自分类Dev

Web API仅允许单个异步任务

来自分类Dev

如何仅允许请求从IP /域列表进行Elasticsearch

来自分类Dev

Spring Security-仅允许带有前缀的请求

来自分类Dev

Laravel中的POST请求仅允许内容类型json

来自分类Dev

计算来自Api的JSON请求

来自分类Dev

请求来自Google Search API的回复

来自分类Dev

接受来自 Retrofit API 请求的多个负载

来自分类Dev

Ajax请求来自不同域的restful api

来自分类Dev

在javascript中过滤来自API的请求

来自分类Dev

仅接受来自特定页面的AJAX $ _GET或$ _POST请求

来自分类Dev

Elasticsearch-查找仅来自匿名请求的IP

来自分类Dev

在docker中使用以太坊,如何允许来自主机的请求并拒绝来自其他机器的请求?

来自分类Dev

是否可能仅允许chrome扩展程序使http请求成为其他请求?

来自分类Dev

django-allauth:仅允许来自特定Google Apps域的用户

Related 相关文章

热门标签

归档