登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
资源区
›
代码
›
.net项目防止盗链的几种实现方案
.net项目防止盗链的几种实现方案
[ 复制链接 ]
幌斛者
2025-5-29 10:58:31
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
项目背景
甲方本地化上线了我们系统之后,进行安全漏洞扫描
发现了一个问题:
我们的附件路径 直接通过站点 访问的 ,在未授权的模式下,可以直接随意替换路径里的文件内容,通过浏览器拼接链接的方式打开系统里的一些附件和图片内容
因为系统内部 站点 呈现附件 也都是通过这个方式拼接呈现的。
快速调整方案一
:用了 授权认证 的方式,控制附件图片的访问
需要在.net 代码的webconfig 文件里 添加 用户控制,这里deny 拒绝所有用户
<location path="Upload">
<system.web>
<deny users="?" />
</authorization>
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
</customHeaders>
</httpProtocol>
</system.webServer>
</location>
<location path="Upload/BackgroundImg">
<system.web>
</authorization>
</system.web>
</location>
<location path="Upload/LogoIcon">
<system.web>
</authorization>
</system.web>
</location>
复制代码
同时webcofig 里的 module 节点里 添加以下代码,以保证上面的文件访问规则,能正常执行。
<remove name="UrlAuthorization" />
<remove name="DefaultAuthentication" />
复制代码
通过上述两段配置,可以快速实现 用户未登录的情况下,无法直接通过图片路径打卡图片,防止恶意获取信息。
方案一缺点:
但其实这个不是最完善的方式,对于已经登录的用户,还是可以通过拼接链接,修改链接中的参数,直接渲染其他图片。
加强方案二
:我们可以通过
添加httphandler
对所有请求的 Referer 来源进行判断来 控制访问权限
可以结合方案一使用
using System;
using System.Web;
public class AntiLeechHandler : IHttpHandler
{
private const string RefererKey = "Referer";
private const string AllowedReferer = "http://www.yoursite.com";
public void Dispose()
{
}
public void ProcessRequest(HttpContext context)
{
string referer = context.Request.Headers[RefererKey];
// 如果 Referer 为空或者不匹配允许的站点,则进行处理
if (string.IsNullOrEmpty(referer) || !referer.StartsWith(AllowedReferer))
{
context.Response.Clear();
context.Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound; // 设置状态码为 404
context.Response.End();
}
else
{
// 合法请求,继续处理
string filePath = context.Server.MapPath(context.Request.Path);
if (System.IO.File.Exists(filePath))
{
context.Response.ContentType = GetContentType(filePath);
context.Response.WriteFile(filePath);
}
else
{
context.Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
}
}
}
private string GetContentType(string filePath)
{
string extension = System.IO.Path.GetExtension(filePath).ToLower();
switch (extension)
{
case ".jpg":
case ".jpeg":
return "image/jpeg";
case ".png":
return "image/png";
case ".gif":
return "image/gif";
case ".pdf":
return "application/pdf";
// 可根据需要添加更多文件类型的 MIME 类型
default:
return "application/octet-stream";
}
}
public bool IsReusable
{
get { return false; }
}
}
复制代码
在 web.config 中添加以下配置,将所有请求指向该处理程序
<remove name="UrlAuthorization" />
<remove name="DefaultAuthentication" />
复制代码
也可以自定义 HTTP 模块判断
Referer
自定义 HTTP 模块可以在请求处理管道的早期介入,进行更复杂的逻辑判断,如验证签名、检查时间戳等,以确保请求的合法性和安全性。示例代码如下
using System;
using System.Web;
public class WebHotlinkProtectionModule : IHttpModule
{
private const string RefererKey = "Referer";
private const string AllowedReferer = "http://www.yoursite.com";
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += (sender, e) =>
{
string referer = context.Request.Headers[RefererKey];
// 如果 Referer 为空或者不匹配允许的站点,则进行处理
if (string.IsNullOrEmpty(referer) || !referer.StartsWith(AllowedReferer))
{
context.Response.Clear();
context.Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound; // 设置状态码为 404
context.Response.End();
}
};
}
}
复制代码
在 web.config 中注册自定义模块
<remove name="UrlAuthorization" />
<remove name="DefaultAuthentication" />
复制代码
方案二缺点
:因为可能存在 Referer 伪造,所以还是可能存在风险
加强方案三
:对链接添加token ,通过失效控制和token 解析 防止盗链
可以结合方案一和方案二使用
方案三缺点:
这个逻辑 目前考虑下来,可能对现有系统的调整会比较大,固还没有尝试。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
net
项目
防止
盗链
几种
相关帖子
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
AI时代如何临摹项目:Vault跨项目持久化存储系统
GitHub 热门项目 Top 10 | 2026 年 04 月 05 日
AgileAI - 一个新的 .NET AI 库
GitHub 热门项目 Top 10 | 2026年04月07日
.NET 高级开发 | .NET 中的序列化和反序列化
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
1
989
嗣伐
2026-04-05
业界
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
0
252
院儿饯
2026-04-05
业界
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
2
919
左丘平莹
2026-04-05
业界
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
0
679
格恳绌
2026-04-05
业界
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
1
239
终秀敏
2026-04-05
业界
AI时代如何临摹项目:Vault跨项目持久化存储系统
0
491
户烫擞
2026-04-06
业界
GitHub 热门项目 Top 10 | 2026 年 04 月 05 日
1
762
上官泰
2026-04-06
业界
AgileAI - 一个新的 .NET AI 库
1
854
毋献仪
2026-04-07
业界
GitHub 热门项目 Top 10 | 2026年04月07日
0
390
吕颐然
2026-04-07
业界
.NET 高级开发 | .NET 中的序列化和反序列化
1
534
篁瞑普
2026-04-07
回复
(31)
段干叶农
2025-10-10 14:08:16
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
陆菊
2025-10-22 00:43:58
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
汪玉珂
2025-10-27 23:27:25
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享
染罕习
2025-11-28 17:46:21
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
很好很强大 我过来先占个楼 待编辑
骂治并
2025-12-4 05:22:46
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
鞍汉
2026-1-14 14:16:08
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢发布原创作品,程序园因你更精彩
粒浊
2026-1-18 07:34:48
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
接快背
2026-1-21 02:55:16
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,下载保存了,貌似很强大
掳诚
2026-1-22 22:23:12
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
旱由
2026-1-28 06:29:39
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
站竣凰
2026-1-29 02:45:01
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
沦嘻亟
2026-1-29 05:00:26
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
站竣凰
2026-2-2 17:36:37
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
萨瑞饨
2026-2-3 05:22:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢发布原创作品,程序园因你更精彩
煅汾付
2026-2-3 06:03:22
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
判涔
2026-2-6 12:26:02
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
东西不错很实用谢谢分享
颜清华
2026-2-8 06:44:06
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享
时思美
2026-2-8 16:05:31
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
士沌
2026-2-9 22:17:23
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
幌斛者
2026-2-9 22:17:23
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991126
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9516
6
宋子
9875
7
韶又彤
9909
8
荪俗
8988
9
蓬森莉
9867
10
二艰糖
9515
查看更多
今日好文热榜
870
OpenSpec + Claude Code 实战指南:让 AI
23
Redis Sentinel高可用实战:主从自动故障转
290
自感痕迹论:差异即意义(含参考文献引用)
443
自感痕迹论:差异即意义(含参考文献引用)
498
自感痕迹论:差异即意义(含参考文献引用)
300
自感痕迹论:差异即意义(含参考文献引用)
963
自感痕迹论:差异即意义(含参考文献引用)
1001
自感痕迹论:差异即意义(含参考文献引用)
804
自感痕迹论:差异即意义(含参考文献引用)
900
环形缓冲区在嵌入式系统中的应用:串口中断
541
自感痕迹论:差异即意义(含参考文献引用)
254
自感痕迹论:差异即意义(含参考文献引用)
2
我帮你测过了,测试圈排名第一的 Skill 果
439
自感痕迹论:差异即意义(含参考文献引用)
154
自感痕迹论:差异即意义(含参考文献引用)
3
热门视频是怎样炼成的——基于 B站“每周必
757
自感痕迹论:差异即意义(含参考文献引用)
2
我帮你测过了,测试圈排名第一的 Skill 果
2
我帮你测过了,测试圈排名第一的 Skill 果
963
如何用交换机命令行创建 VLAN(轻松秒懂)