如何阻止别人非法链接你网站的图片?
作者:若安舟已远
时间:2026-07-22
浏览:2
通过Referer提取域名,若来源为intels.net则允许访问并重定向至指定文件,否则返回默认图片,实现软拒绝防盗链。代码简洁,但需注意空值校验,防止Referer为空或缺失时引发错误,确保逻辑正确。
具体来看,这段脚本的核心流程是这样的:
<% Option Explicit
Dim strBuffer, FilePath
strBuffer = Request.ServerVariables("HTTP_REFERER")
strBuffer = mid(strBuffer, InStr(strBuffer,".") + 1)
strBuffer = left(strBuffer, InStr(strBuffer, "/") - 1)
FilePath = "/HIDDENIMAGES/"
If strBuffer = "intels.net" then
FilePath = FilePath + Request.QueryString("FName")
Else
FilePath = "/images/chunfeng.jpg"
End If
Response.Redirect(FilePath)
%>
注意几个关键点:
第一,它从`HTTP_REFERER`中提取了域名部分。具体做法是先找到第一个点号,取它后面的字符串,再从左到右截取到第一个斜杠为止,这样就得到了纯域名(比如`intels.net`)。这个方法虽然简单,但有个前提:Referer必须包含完整的URL路径,否则会出错。
第二,如果来源域名是`intels.net`,则允许访问,并重定向到`/HIDDENIMAGES/`目录下的具体文件(通过`FName`参数指定)。如果来源不符合,则统一返回一张默认的`/images/chunfeng.jpg`图片。这其实是一种“软拒绝”策略——让盗链者看到的不是错误页面,而是一张无关紧要的图片,从而降低被发现的概率。
第三,`Option Explicit`强制变量声明,这在老ASP中是好习惯,能避免很多拼写错误。不过,代码中`strBuffer`的使用存在一个潜在漏洞:如果Referer没有点号或者斜杠,`InStr`会返回0,导致`mid`和`left`函数处理空字符串,进而可能触发运行时错误。实际生产环境中,建议增加对空值和格式的校验。
总而言之,这段代码用不到20行就实现了防盗链的核心逻辑,兼顾了可读性和实用性。对于熟悉ASP的开发者来说,它就像一本微型教科书——简洁、直接、不拖泥带水。
作者最新文章
WPS 表格单元格内换行快捷键是什么
2026-10-10 15:48
Word格式转换成PDF?Word转PDF的具体步骤是什么?
2026-09-02 19:13
长安猎手K50 2026款上市,14.19万元起售
2026-08-25 16:08
价格大跳水,网友惊呼买早了!两大巨头正面交锋,最高直降2500元,几乎所有品类“你降我也降”
2026-08-25 16:02
全新奥迪Q3 L申报信息揭晓,车身尺寸升级,动力配置保持强劲
2026-08-25 15:44
上一篇:
如何自动更新导航栏?
下一篇:
怎样获知数据库的连接属性?
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































