按客户端地理位置限制网站访问

Restricting website access by client geolocation

提问人:NicoLS 提问时间:1/19/2023 更新时间:1/19/2023 访问量:47

问:

由于国家/地区法规,我需要限制对网站的访问。我知道托管服务提供商或 CDN/Web 服务器(如 Cloudflare 或 NGINX)可以为我做到这一点,并且可能是最好的方法 (?),但我认为只有当网站需要扩展并且由于它的预期流量很小时,我才想自己实施它。

这个问题不是关于如何获取用户 IP 或如何将地理位置 API 与该 IP 一起使用。它是关于如何设计后端以拒绝或授予客户端对网站的访问权。

  1. 我需要对服务器的每个请求都这样做吗?如果是,我应该只编写中间件来拒绝请求(如果它是一个被阻止的国家)还是将该逻辑放在其他地方?
  2. 或者我可以做一次,然后以某种方式为那个客户“记住”它(这有多可靠/会被滥用吗?

我只是不想构建一个超级愚蠢的设计,我只是为了这样的简单任务而影响后端的性能。

先谢谢你。

Django Web-Development-Server -地理位置 IP 限制

评论

0赞 Harun Yilmaz 1/19/2023
这取决于您选择的 API。有些公司不允许您缓存地理位置响应,因此您可能需要为您的网站的每个请求发送地理位置请求。
0赞 NicoLS 1/19/2023
@HarunYilmaz感谢您的回复,您能否详细说明一下,我不太明白您的意思。您的意思是,如果我获取用户 IP 并查询地理位置 API 以确定他们所在的位置,API 提供商可以禁止我缓存其响应?
0赞 Harun Yilmaz 1/19/2023
某些 API 提供程序明确告知不允许缓存对其 API 的调用的响应。从技术上讲,您可以缓存它们,但这可能违反了可能导致法律问题的条款和条件。

答: 暂无答案