仅允许个人网站进行 REST api 访问(不允许其他请求服务)
Allow REST api access only by personal webiste (not other requests servcices)
我知道之前有人问过这个问题,但我没有找到解决我问题的可行方法,我在我的 Django 应用程序中实现了 CORS 以限制域访问和还使用 CSRF 令牌针对不安全的 HTTP 方法进行安全数据传输,但我仍然可以通过邮递员或其他 HTTP 服务向 API 发出请求,如何才能我避免那个?
注意:
我的应用程序 不使用具有 oAuth 系统 等的用户,它向数据库发出 POST 请求以获得令牌(特定于应用程序术语)提出请求的人,但我只希望我的网站提出这样的请求,不再需要,怎么办?
Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be requested from another domain outside the domain from which the first resource was served.
您可以将 CORS 视为在前端请求后台运行的标准,仅由网络浏览器执行.因此,如果您想使用不是浏览器的 HTTP 客户端进行请求,例如 curl
,您根本不会通过 CORS 验证。
所以底线是:
如果您想阻止其他非浏览器 HTTP 客户端向您的 API 发出请求,您需要自己想办法。
例如:
创建一个 middleware 来检查传入的请求是否来自您在应用设置中的可信来源列表。
我知道之前有人问过这个问题,但我没有找到解决我问题的可行方法,我在我的 Django 应用程序中实现了 CORS 以限制域访问和还使用 CSRF 令牌针对不安全的 HTTP 方法进行安全数据传输,但我仍然可以通过邮递员或其他 HTTP 服务向 API 发出请求,如何才能我避免那个?
注意: 我的应用程序 不使用具有 oAuth 系统 等的用户,它向数据库发出 POST 请求以获得令牌(特定于应用程序术语)提出请求的人,但我只希望我的网站提出这样的请求,不再需要,怎么办?
Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be requested from another domain outside the domain from which the first resource was served.
您可以将 CORS 视为在前端请求后台运行的标准,仅由网络浏览器执行.因此,如果您想使用不是浏览器的 HTTP 客户端进行请求,例如 curl
,您根本不会通过 CORS 验证。
所以底线是: 如果您想阻止其他非浏览器 HTTP 客户端向您的 API 发出请求,您需要自己想办法。
例如:
创建一个 middleware 来检查传入的请求是否来自您在应用设置中的可信来源列表。