Nginx 阻止访问引用 url
Nginx block access to referring url
我发现一个域作为 A 记录指向我的服务器 IP 地址。
我已经尝试实施各种措施来阻止它。我可以阻止它访问服务器上的资产,即加载 JS/CSS 文件,当从站点内访问 link 时我可以阻止它。我猜当页面首次加载时,从技术上讲它不是引荐来源网址?但是当 link 被点击时它改变了页面然后它是?
我尝试过的:
if ($http_referer ~* domaintoblock)
{ return 403; }
和
valid_referers none blocked server_names
*.mydomain.com;
if ($invalid_referer) {
return 403;
}
这两个都是一样的效果。加载的所有资产都被阻止,任何后续页面访问都被阻止,但初始访问未被阻止。
理想情况下,我想阻止任何不是我在 site-enabled/default
文件中列出的 server_name
变量的内容。
看来你需要加一个catch-all server block:
server {
listen 80 default_server;
server_name "";
return 444;
}
444
状态代码将关闭连接而不发送响应。
最好简单地为此名称配置一个服务器块,return 444 或 403。
我发现一个域作为 A 记录指向我的服务器 IP 地址。
我已经尝试实施各种措施来阻止它。我可以阻止它访问服务器上的资产,即加载 JS/CSS 文件,当从站点内访问 link 时我可以阻止它。我猜当页面首次加载时,从技术上讲它不是引荐来源网址?但是当 link 被点击时它改变了页面然后它是?
我尝试过的:
if ($http_referer ~* domaintoblock)
{ return 403; }
和
valid_referers none blocked server_names
*.mydomain.com;
if ($invalid_referer) {
return 403;
}
这两个都是一样的效果。加载的所有资产都被阻止,任何后续页面访问都被阻止,但初始访问未被阻止。
理想情况下,我想阻止任何不是我在 site-enabled/default
文件中列出的 server_name
变量的内容。
看来你需要加一个catch-all server block:
server {
listen 80 default_server;
server_name "";
return 444;
}
444
状态代码将关闭连接而不发送响应。
最好简单地为此名称配置一个服务器块,return 444 或 403。