欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

程序员文章站 2023-11-10 21:36:46
网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像dedecms系统,可写入的有两个目录 data、uploads,data...

网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像dedecms系统,可写入的有两个目录 data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消 这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。

windows下的iisiis6.0取消服务器主机空间目录脚本的执行权限

打开iis中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可。(如图1)

IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

iis7取消服务器主机空间目录脚本的执行权限

网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像dedecms系统,可写入的有两个目录 data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消 这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。

iis7中的步骤

第一步呢,我们在iis的左侧选中该目录,切换到功能视图

第二步呢,打开“处理程序映射”功能

第三步呢,打开右侧的“编辑功能权限”,将“脚本”这一项取消掉即可

iis7也类似于iis6.0,选择站点对应的目录,data、uploads及静态html文件目录,双击功能试图面板中的“处理程序映射”(如图2)

IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

(图2)

在“编辑功能权限……”中,我们直接去除脚本的执行权限即可。(如图3)

IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

综上所述:

若想让指定目录只有读取权限,只要在目录中放置一个名为 “web.config“,内容为

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<system.webserver> 
<handlers accesspolicy="read" /> 
</system.webserver> 
</configuration> 

的(配置)文件即可。

这样,在访问该目录下的 asp、php等可执行文件时,iis7就会输出如下错误提示:

http 错误 401.3 - unauthorized

由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。

iis7.5批量删除 处理程序映射的方法

因为服务器目前只需要支持php,那么就可以把asp,asp.net都删除了。iis7.5比较好的一点就是全部通过根目录的web.config控制,下面提供这个文件,大家就可以参考一下了

IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webserver>
    <handlers>
      <remove name="traceverbhandler" />
      <remove name="optionsverbhandler" />
      <remove name="webservicehandlerfactory-isapi-2.0-64" />
      <remove name="webservicehandlerfactory-isapi-2.0" />
      <remove name="webservicehandlerfactory-integrated" />
      <remove name="webadminhandler-integrated" />
      <remove name="tracehandler-integrated" />
      <remove name="ssinc-stm" />
      <remove name="ssinc-shtml" />
      <remove name="ssinc-shtm" />
      <remove name="simplehandlerfactory-isapi-2.0-64" />
      <remove name="simplehandlerfactory-isapi-2.0" />
      <remove name="simplehandlerfactory-integrated" />
      <remove name="securitycertificate" />
      <remove name="pagehandlerfactory-isapi-2.0" />
      <remove name="pagehandlerfactory-integrated" />
      <remove name="httpremotinghandlerfactory-soap-isapi-2.0-64" />
      <remove name="httpremotinghandlerfactory-soap-isapi-2.0" />
      <remove name="httpremotinghandlerfactory-soap-integrated" />
      <remove name="httpremotinghandlerfactory-rem-isapi-2.0-64" />
      <remove name="httpremotinghandlerfactory-rem-isapi-2.0" />
      <remove name="axd-isapi-2.0-64" />
      <remove name="httpremotinghandlerfactory-rem-integrated" />
      <remove name="axd-isapi-2.0" />
      <remove name="assemblyresourceloader-integrated" />
      <remove name="pagehandlerfactory-isapi-2.0-64" />
      <remove name="aspclassic" />
    </handlers>
  </system.webserver>
</configuration>

其实就是通过 <remove name="" />进行删除的,如果想恢复指定的某个映射,可以删除对应的名称即可。