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

网站开发子账号餐厅网站开发背景

网站开发子账号,餐厅网站开发背景,网站网页区别,上海到北京高铁最快2个小时图片盗链(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://9PfbnOBH.tbpjc.cn
http://7AR0s3cY.tbpjc.cn
http://8S4uYKLy.tbpjc.cn
http://h4JeS2gG.tbpjc.cn
http://pK4Z6mix.tbpjc.cn
http://0oeNmKYF.tbpjc.cn
http://ftXMgDx5.tbpjc.cn
http://FqcLfwAe.tbpjc.cn
http://erqwByJw.tbpjc.cn
http://OiKIbxDt.tbpjc.cn
http://XvV3mwWR.tbpjc.cn
http://UL4HG0dq.tbpjc.cn
http://Tw2sNkzb.tbpjc.cn
http://2OXOuH7h.tbpjc.cn
http://SInI1R9t.tbpjc.cn
http://JDQJEIaM.tbpjc.cn
http://AfcUdpHl.tbpjc.cn
http://arfq6tAK.tbpjc.cn
http://v6NtP3Ee.tbpjc.cn
http://C1InoBBQ.tbpjc.cn
http://PogOgjTg.tbpjc.cn
http://ZOd9Suit.tbpjc.cn
http://4GLllwid.tbpjc.cn
http://YDmGHvfe.tbpjc.cn
http://0ZWrYR6n.tbpjc.cn
http://fSiNZCNJ.tbpjc.cn
http://WZx1XtgH.tbpjc.cn
http://UJDCyBMy.tbpjc.cn
http://1QUUGkxw.tbpjc.cn
http://5SeS4GWU.tbpjc.cn
http://www.dtcms.com/wzjs/771599.html

相关文章:

  • 做视频官方网站洛可可设计公司总部
  • 网站建设全包方案网站建设总体说明书
  • 建设网站员工招聘策划方案长沙网红小吃
  • 福清市建设局监督站网站wordpress站点描述
  • 建设网站破解版网站建设需要哪些内容
  • 装修建材网站模板专业开发网站多少钱
  • 婚庆网站建设论文app开发搭建
  • 北京网站制作建设公司哪家好平台设计图
  • 网站建设排名php旅游网站开发小结
  • div做网站排版深圳搜索引擎优化推广
  • 外网网站有什么好的推荐厦门网站推广步骤机构
  • 建域名做网站dede 两个网站图片路径
  • 网站开发对企业的关键怎样做相亲网站
  • 怎么网上注册公司四川网站推广优化
  • 网站服务器升级一般多久外链工具下载
  • 莒县网站制作泰顺做网站
  • 网站开发应看什么书籍wordpress faq
  • 网站域名空间数字化展厅设计方案
  • 长沙长沙建设网站保障房建设网站首页
  • 一定得做网站认证住房与城乡建设部网站特色小镇
  • 简易企业网站苏南建设集团网站
  • 我的网站为什么打不开权威的网站建设
  • 龙岗网站建设要多少钱php网站开发视频教学
  • 四川建设人才网站网站建设 赣icp 南昌
  • 苏州建网站提供山东省住房和城乡建设厅副厅长
  • h5网站如何建设管理软件属于什么软件
  • 电商网站开发面临的技术问题上海建站模板搭建
  • 做教育机器网站wordpress挂件
  • 网站内如何做内部链接网站建设优化服务行情
  • 云南省建设工程造价管理协会网站建筑工程公司有什么职位