asp.net中利用ashx实现图片防盗链的原理分析

时间:2021-05-28


直接分析盗链原理:看下面用httpwatch截获的http发送的数据

GET /Img.ashx?img=svn_work.gif HTTP/1.1
Accept: */*
Referer: https://parison.InvariantCultureIgnoreCase))
context.Response.WriteFile(context.Server.MapPath("~/" + context.Request.QueryString["img"]));
else
context.Response.WriteFile(context.Server.MapPath("~/logo.gif"));
}

public bool IsReusable
{
get
{
return false;
}
}
}
}




表示如果来源不为空,并且来源的服务器和当前服务器一致,那就表示是正常访问,非盗链。正常访问文件内容。

否则就是盗链,返回网站LOGO。

你甚至可以做成随机返回正确的图片,随机返回错误图片,或者定时返回正确图片,定时返回错误图片。

然后就是图片的使用了,这时使用图片就不是直接<input type="image" src="svn_work.gif" />了,而是<input type="image" src="/Img.ashx?img=svn_work.gif" />,就是说通过img,ashx来读取图片。别人盗链的话要用下面代码:<input type="image" src="https://www.jb51.net/Img.ashx?img=svn_work.gif" />。

赶紧给自己的网站加上防盗链吧!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章