![]() |
1
4
从API的角度来看,您的SPA与任何其他客户机都没有任何不同。显然,你不能在SPA中包含一个秘密,因为它是发送给任何人的,并且不能受到保护。另外,它对API的请求可以很容易地被另一个客户机嗅探和复制。 所以简而言之,正如这里多次讨论的那样,您不能对客户端应用程序进行身份验证。任何人都可以创建一个不同的客户,如果他们想的话。 有件事你 实际上要做的是检查请求的referer/origin。如果客户机在浏览器中运行,它可以发出的thr请求会受到一定的限制,其中一个限制是referer和origin头,它们总是由浏览器控制,而不是javascript。所以你可以确定如果(并且只有当!)客户端正在未经修改的浏览器中运行,它是从您的域下载的。这是浏览器btw中的默认设置,所以如果您没有发送CORS头,那么您已经发送了(实际上浏览器确实发送了)。但是,这并不能阻止攻击者构建和运行非浏览器客户端,伪造他喜欢的任何引用或源,或者只是忽略同一源策略。 你可以做的另一件事是定期更改API,以阻止恶意客户端工作(并在ofc的同时更改客户端)。显然这根本不安全,但对于攻击者来说已经够烦人了。如果一次下载你所有的数据是一个问题,这再次没有任何帮助。 你应该考虑的是:
|
![]() |
Dev · 在laravel rest api中按特定角色获取所有用户 2 年前 |
![]() |
IDskxo · 为什么我们需要添加。响应的end()? 2 年前 |
![]() |
KollegeBo · 触发更新的POST或GET 2 年前 |
![]() |
meren · 如何使用react向后端api请求用户提供的值? 3 年前 |
![]() |
CaptTaifun · 如何对“多个”和“单个”对象使用相同的端点? 3 年前 |
![]() |
Zsombor Szende · 汇率api从哪里获取数据?[闭门] 3 年前 |