当前位置: 首页 > wzjs >正文

深圳做积分商城网站设计国内新闻今日头条

深圳做积分商城网站设计,国内新闻今日头条,做网站的手机软件,B2B商贸信息网站系统图片盗链(Hotlinking)是指其他网站直接链接到你服务器上的图片资源,这会消耗你的带宽和服务器资源。以下是几种在ASP.NET中防止图片盗链的有效方法: 1. 使用URL重写模块(推荐) 在Web.config中配置URL重写规…

图片盗链(Hotlinking)是指其他网站直接链接到你服务器上的图片资源,这会消耗你的带宽和服务器资源。以下是几种在ASP.NET中防止图片盗链的有效方法:

1. 使用URL重写模块(推荐)
在Web.config中配置URL重写规则:

xml
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Prevent Image Hotlinking">
                <match url=".*\.(gif|jpg|png|jpeg)$" />
                <conditions>
                    <add input="{HTTP_REFERER}" pattern="^$" negate="true" />
                    <add input="{HTTP_REFERER}" pattern="^https?://(www\.)?yourdomain\.com" negate="true" />
                </conditions>
                <action type="Rewrite" url="/images/blocked.png" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
2. 使用HTTP处理程序(.ashx)
创建一个通用处理程序(ImageHandler.ashx):

csharp
public class ImageHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string imagePath = context.Request.QueryString["img"];
        string referrer = context.Request.UrlReferrer?.Host ?? "";
        
        if (string.IsNullOrEmpty(referrer) || !referrer.Contains("yourdomain.com"))
        {
            context.Response.ContentType = "image/png";
            context.Response.WriteFile(context.Server.MapPath("~/images/blocked.png"));
            return;
        }
        
        string fullPath = context.Server.MapPath(imagePath);
        if (File.Exists(fullPath))
        {
            context.Response.ContentType = "image/" + Path.GetExtension(fullPath).Substring(1);
            context.Response.WriteFile(fullPath);
        }
    }
    
    public bool IsReusable => false;
}
3. 使用MVC控制器动作
csharp
public class ImageController : Controller
{
    public ActionResult GetImage(string imageName)
    {
        string referrer = Request.UrlReferrer?.Host ?? "";
        
        if (string.IsNullOrEmpty(referrer) || !referrer.Contains("yourdomain.com"))
        {
            return File(Server.MapPath("~/images/blocked.png"), "image/png");
        }
        
        string imagePath = $"~/images/{imageName}";
        string fullPath = Server.MapPath(imagePath);
        
        if (System.IO.File.Exists(fullPath))
        {
            string contentType = $"image/{Path.GetExtension(imageName).Substring(1)}";
            return File(fullPath, contentType);
        }
        
        return HttpNotFound();
    }
}
4. 使用.htaccess方法(适用于IIS)
如果你的网站托管在IIS上,可以在web.config中添加:

xml
<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Access-Control-Allow-Origin" value="https://www.yourdomain.com" />
        </customHeaders>
    </httpProtocol>
</system.webServer>
5. 使用C#中间件(ASP.NET Core)
对于ASP.NET Core应用,可以创建中间件:

csharp
public class AntiHotlinkingMiddleware
{
    private readonly RequestDelegate _next;
    
    public AntiHotlinkingMiddleware(RequestDelegate next)
    {
        _next = next;
    }
    
    public async Task Invoke(HttpContext context)
    {
        var path = context.Request.Path.Value;
        var isImage = path.EndsWith(".jpg") || path.EndsWith(".png") || path.EndsWith(".gif");
        
        if (isImage)
        {
            var referer = context.Request.Headers["Referer"].ToString();
            if (!string.IsNullOrEmpty(referer) && !referer.Contains("yourdomain.com"))
            {
                context.Response.ContentType = "image/png";
                await context.Response.SendFileAsync(Path.Combine("wwwroot", "images", "blocked.png"));
                return;
            }
        }
        
        await _next(context);
    }
}
然后在Startup.cs中注册:

csharp
app.UseMiddleware<AntiHotlinkingMiddleware>();
最佳实践建议
结合多种方法使用,提高防护效果

为合法引用设置白名单而不是黑名单

定期检查服务器日志,监控盗链情况

考虑使用CDN服务,许多CDN提供防盗链功能

对于敏感图片,考虑添加水印或使用低分辨率版本供外部引用

http://www.dtcms.com/wzjs/135054.html

相关文章:

  • 网页设计主要学什么内容排名优化公司哪家好
  • 大剧院网站建设市场监督管理局是干什么的
  • 网站底部源码google谷歌搜索主页
  • 自己做网站怎么加定位站长之家端口扫描
  • 做网站用什么系统较好免费网站推广网站破解版
  • 网站副标题wordpress此网站三天换一次域名
  • 天津谷歌优化公司青岛官网seo公司
  • 做网站用织梦好吗新网域名查询
  • 自建站做seo合肥搜索引擎推广
  • 郑州网站建设哪家有百度搜索引擎api
  • 广州做网站报价2023网站seo
  • 不是做有网站都叫狠狠百度seo查询系统
  • 网站代理服务器设置三亚百度推广公司
  • 电子商务网站建设调查报告青岛网络优化厂家
  • 可以做四级听力的网站谷歌网站收录提交入口
  • 新浪短网址链接生成器seo在线培训课程
  • 公司建设网站费用属于什么费用吗百度问问首页
  • 旅游网站建设设计东莞seo搜索
  • 河南网站建设网络营销的渠道
  • 外贸设计网站建设海淀区seo搜索引擎
  • 昆山网站建设 技术支持 力得网络环球网疫情最新
  • 做美瞳网站需要什么资质自己建网站流程
  • 制作手机的游戏seo培训多少钱
  • 网站如何做长尾词排名chatgpt 网站
  • 什么网站上做任务赚钱郑州关键词排名公司电话
  • 外贸网站设计郑州百度推广有用吗
  • 微信网站建设热线网页制作咨询公司
  • 企业网站模板网 凡建站职业培训网络平台
  • 建一个淘宝客网站要多少钱北京网络营销公司哪家好
  • 上海网站建设平台百度广告费用