如何阻止别人非法链接你网站的图片?
通过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的开发者来说,它就像一本微型教科书——简洁、直接、不拖泥带水。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















