外链一经发布,即可永久留存
5元就可把锚文本外链发布到200个新闻网站

nginx禁止外链,nginx屏蔽地区方法

nginx禁止外链,nginx屏蔽地区方法

如何禁止外链和屏蔽地区,nginx能做到吗?

什么是外链?为什么需要禁止外链?

外链(也称之为盗链)是指其他网站或者在别的场所上(如论坛、博客)嵌入你站点的图片、Flash等资源。禁止外链可以避免带宽被攻击者盗用、提高访问速度、保护版权资源、防范某些恶意攻击。

nginx如何禁止外链?

禁止外链的方式有很多种,其中较为实用的方式是直接修改 nginx 的配置文件。通过在配置文件中添加以下代码,可以实现直接禁止非本站访问的资源:

if ($http_referer ~* (\\.css|\\.js|\\.png|\\.jpg|\\.gif)) {
# 表示该文件不允许被其他网站 iframe 的方式引用
return 403;
}

如何防止被篡改、伪造来源?

简单地比对来源可能会出现被篡改、伪造的情况。更为科学的方式是通过 token(密钥)的方式进行验证,只有当请求中带有密钥时,才能通过验证。可以通过以下代码来生成请求的 token:

$token = md5($secret_key . $cdn_url . $allow_domains_list);

什么情况下需要屏蔽地区?如何屏蔽地区?

有一些特定地区非常容易产生恶意攻击,甚至可能会造成损失。在这种情况下,需要屏蔽特定的地区或 IP 以确保安全。通过 nginx 的 GeoIP 功能即可轻松实现,只需在配置文件中定义禁止的地区即可,例如:

if ($allowed_country ~ \"CN\") {
return 403;
}

如何灵活应对不同场景的需求?

不同的需求可能需要不同的方式进行设置,可以通过自定义 nginx 的配置文件来实现灵活变换配置。同时,还可以针对不同的需求制定各自的开关,方便快速启停某些功能。例如:

location /cdn {
\tif ($cdn_access) {
# 输入了 getCdnToken 必须有一个有限期
# 因为这里是 token+timestamp 相加,如果不加时间限制这里很容易过期访问
# 如果过了时间直接返回 403就好了
access_by_lua_block {
local valid_timestamp=ngx.time() + 300;
local encrypted_key=ngx.md5(ngx.var.secret..ngx.var.args..valid_timestamp);
ngx.var.token=encrypted_key..\"|\"..valid_timestamp;
}
\t}

\tadd_header Content-Type text/plain;
\treturn 200 $token;
}

location /demo {
\tif ($demo_loc_mode_enable) {
return 403;
\t}
\treturn 200 'ok';
}

通过以上技巧,可以轻松地对 Nginx 进行所需的外链禁用以及区域屏蔽等常见功能的设置。这一功能的实现对于网站的正常运营和安全性具有至关重要的作用。

赞(0)
以上所转载内容均来自于网络,不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2020@163.com,本人将予以删除。帮发锚文本外链网 » nginx禁止外链,nginx屏蔽地区方法