我有一个基于RESTful API的单页应用程序应用程序。通常,所有API都有路由访问权限,可以在检查Web应用程序时找到它。尽管我具有基于用户令牌的身份验证机制,但黑客仍可以找到API路由并使用其给定的令牌将许多请求直接发送到API。防止这种行为的最佳解决方案是什么?我当时在考虑CSRF,但是由于API是基于REST的,并且该项目是SPA,所以我认为我应该拥有另一种机制。您能帮我吗?
您无法验证客户端应用程序,这是不可能的。如果用户可以从spa发送请求,因为他们具有凭据和要发送给它们的端点,则他们可以使用Burp通过ZAP或Postman提供的任何客户端进行卷曲,或者使用其他任何方式来发送请求。
您的API必须具有弹性,基于威胁模型,通常应在服务器端具有速率限制,用户配额,监视和安全操作惯例,以减轻这种风险。
实际上,这可能意味着托管API的方式可以在网络级别上对DoS进行恢复,并具有针对每个用户的请求速率限制,并确定由于某种原因对服务器造成负担的功能(调用外部服务,发送电子邮件等等),并更加仔细地保护/监视这些内容。没有一种适合所有解决方案的尺寸。