首先介绍一下防盗链的作用以及说明:防盗链技术是Web项目开发过程中必定会用到的技术,否则网站资源会被其他网站引用,并造成损失。一些 不良网站为了在不增加成本的前提下扩充自己站点的内容,经常盗用其他网站的资源(如图片),这种现象称为盗链。
那么我们如何实现该功能呢?
今天讲解的是图片的一种防盗链的方法,希望宁帮助到大家!
首先我们的开发工具为VS2019。
选择ASP项目然后点击下一步
然后选择空
项目名字和解决方案随便你自己
然后右键新增一个类:
按照箭头新建一个类
命名尽量规范,然后引入接口,如上图所示
修改一下自己生成的代码
然后在下面的方面中编写代码
public void ProcessRequest(HttpContext context)
{
//读取两个窗体的值
Uri uri = context.Request.UrlReferrer;
Uri currentUrl = context.Request.Url;
//判断
if(uri.Host !=currentUrl.Host||uri.Port!=currentUrl.Port){
//错误的图片
string errorlmagePath = context.Request.PhysicalApplicationPath + "Imag/4.jpg";
context.Response.WriteFile(errorlmagePath);
}
else
{
context.Response.WriteFile(context.Request.PhysicalPath);
}
}
以上就是IHttpHandler类全部的代码
然后添加你想要在网页展示的图片的文件夹
image.png
注意下图的箭头的命名要和文件夹的内容的命名要相同。
image.png
然后我们就只要在新建一个窗体应用
image.png
用img将图片的地址放进去
然后点击Web.config如图
具体代码:
<system.webServer>
<handlers>
<add verb="" path="Imag/.png" type="EFT5H.HttpHandler" name="plink"/>
</handlers>
</system.webServer>
path="Imag/*.png"获取的类型
type="EFT5H.HttpHandler" name="plink"/>:窗体名字加类名
F5运行此窗体
右键复制图片链接(有用,后面用的上)
然后右键新建一个ASP项目。同样添加一个窗体
将刚刚复制的图片链接放在img中
然后进行一个重要的步骤
右键选择解决方案
然后点开属性
将两个窗体全部点击到启动
然后F5运行就完成了
效果图如下
两个网站用的是一样的链接,但是不会显示原图,这就是本期的防盗链
感谢各位观看!