zoukankan      html  css  js  c++  java
  • IIS 静态文件 如doc附件的安全控制

    问题描述:

    http://www.qq.com/downloadFloder/12345.doc

    IIS + asp.net 下,如果用户知道上面的文件路径,就可以直接下载doc类型的附件。

    实现方法:

    大概说说,默认情况下,IIS + asp.net是两层分别处理,
    1)如果用户请求*.doc,*.txt的文件,IIS 直接返回结果给用户。
    2)如果用户请求*.aspx,IIS将处理转交给asp.net。

    而我们的form验证是在asp.net层的,如果控制*.doc安全话,就让IIS把*.doc文件的处理交给asp.net,就是在IIS属性配置映射。

    配置:

    1)IIS6站点->属性->主目录 ->应用程序设置 配置->添加映射 

    可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

    扩展名:.doc

    动作: 全部 或者 限制为GET,HEAD,POST,DEBUG

    2)在web.config 中配置

    <httpHandlers>
    <add verb="*" path="*.doc" type="System.Web.StaticFileHandler" />
    </httpHandlers>

    3)在下载目录downloadFolder配置web.config 限制非验证用户

    <?xml version="1.0"?>
    <configuration>
     <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
     </system.web>
    </configuration>

    如果进一步对权限进行控制,则可以自己写个类代替System.Web.StaticFileHandler接管文件的处理。

  • 相关阅读:
    VS中,如何将存在于解决方案里,但是没有显示出来的文件(或文件夹)显示到项目中。
    (转)分布式系统编程,你到哪一级了?
    领域驱动架构学习总结
    Java多线程总结
    MySQL更新优化
    MySQL查询优化
    MySQL索引
    MySQL优化
    MySQL联接操作
    MySQL架构
  • 原文地址:https://www.cnblogs.com/day/p/2854028.html
Copyright © 2011-2022 走看看