zoukankan      html  css  js  c++  java
  • C#防盗链

    譬如:

    像这样一个地址,有时通过直接点击就可以下下来,但实际上,通过控制,判断用户的权限,还是可以防止资源被直接下载的.

    http://localhost/gv/upload/DesignPattern.rar

    原理:

    客户端对页面的请求,先会通过ISAPI(Internet Server Application Programe Interface),ISAPI会对不同类型的文件,进行分类处理.但是aspnet_isapi.dll 不可能对每种文件采用同一种方式处理,通过 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\ 中的web.config中的HttpHandlers节点,我们可以看出,有一些后缀的文件是通过特定的类处理的.

    于是我们可以通过对某类特定文件,例如.rar后缀的文件,通过自己实现的一个类,实现对资源进行控制.

    具体:

    1.添加一个类,实现IHttpHandler接口.

    public class DaoLian : IHttpHandler
    {
    	public DaoLian()
    	{
    		//
    		//TODO: 在此处添加构造函数逻辑
    		//
    	}
    
        #region IHttpHandler 成员
    
        public bool IsReusable
        {
            get { return true; }
        }
    
        public void ProcessRequest(HttpContext context)
        {
            if ( ** == false)
            {
                HttpResponse Response = context.Response;
                Response.Redirect("~/Default5.aspx");
            }
        }
    
        #endregion
    }
     
    **为自己判断用户权限后返回的Boolean值.
    其中,在ProcessRequest中,可以通过判断用户的权限,设置是允许下载,还是执行其他的操作.
     
    2.添加对.rar文件的控制.
    在web.config中添加对.rar文件的控制.
    <system.web>
    <httphandlers>
    ...
          <add verb="*" path="*.rar" type="DaoLian"/>
    </system.web>
    </httphandlers>
     
    在IIS中,添加对.rar文件的控制.
    在"默认网站"下所需的网站->"属性"->"配置"。在弹出的"应用程序配置"窗口里按"添加",在弹出的"添加/编辑应用程序扩展名映射"
    窗口里“可执行文件”选择C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,在扩展名里输入“.rar”,然后确定即可。
     
    此时,通过.rar后缀的文件,就可以进行控制了.
    例如,对http://localhost/gv/upload/DesignPattern.rar进行访问的话,会跳转至"default5.aspx"页面上.
  • 相关阅读:
    git log中文乱码问题
    局域网映射公网IP
    Android Studio 的一些配置
    Android Studio的安装
    adb的安装
    python的安装
    CentOS 7 上部署 java web 项目
    SQL——SQL语句总结(8)
    SQL——SQL语句总结(7)
    SQL——SQL语句总结(6)
  • 原文地址:https://www.cnblogs.com/oneword/p/1513249.html
Copyright © 2011-2022 走看看