c# - 如何在没有身份验证和授权方法的情况下保护公共(public)端点

标签 c# reactjs rest api

如何防止在 Web 应用上下文之外使用公共(public)端点?

我有一个用 ReactJS 开发的 Web 应用程序,它使用一个用 C# 和 Net Core 2.0 开发的公共(public) API。一些端点是公共(public)的,这意味着这些端点不使用某种身份验证或授权方法。那么,我如何保护这些公共(public)端点以防止在我的 Web 应用程序上下文之外使用它们,例如,不使用 Postman 使用端点并防止被机器人攻击。

Cors 启用:起源 -> “”, header -> “” 和方法 -> “*”。该应用程序可以在世界任何地方使用。

一个伙伴告诉我一个疯狂的想法,当公共(public)端点被消费时,不管是如何或什么,从端点重定向到一个带有验证码的网页,端点等待直到验证码成功,然后它会继续与交易。

最佳答案

如果公共(public) API 不使用任何身份验证和授权,您将无法控制其使用(IP 范围等类似防火墙的功能除外)。

Captcha 重定向不会真正帮助您:您失去了在您的应用程序中无缝使用 API 的可能性:只需在浏览器中单击“开发人员工具”,每个人都可以按字节调用它与从您的应用程序使用时相同的字节方式。

很可能最简单的解决方案是创建某种身份验证和身份验证:针对无法解决的问题(根据定义是不安全的)寻求解决方案将花费您大量的时间、头痛和安全漏洞,而不仅仅是正确地做。

关于c# - 如何在没有身份验证和授权方法的情况下保护公共(public)端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56782160/

相关文章:

c# - 类型 'T' 不可等待

java - IOUtils.toString 和 EntityUtils.toString 之间有什么区别。我应该使用哪一个来读取响应实体

休息API : Wrong schema vs wrong data

c# - 如何更新 MongoDB 文档中的 <byte, string> 字典

c# - 使用 key 将密码编码为 MD5

reactjs - 在react-router-dom中重定向?

javascript - GraphQL : Overriding slugs

reactjs - 如何使用 webpack 使库真正实现 tree-shaking?

java - Spring为选定端点自动添加 'X-Total-Count' header

c# - ASP MVC - 模型为空