apache/nginx/iis禁止脚本执行权限

 

一:apache禁止脚本执行

1、 打开apache安装目录下的配置文件,例如测试主机中的配置文件名称为apache2.conf。

 

 

2、编辑该配置文件,将以下几行添加到配置文件中,Directory为禁止执行权限的目录,例如填写上传文件所在的目录,完成后重启apache服务器即可生效。【后缀名黑名单可以按需增加】

 

<Directory /var/www/html/a/>

        Options Indexes FollowSymLinks

        AllowOverride All

        <Files ~ "\.(?i:php|php2|php3|php4|php5|phpm|phpml|phtml|phtm|phps|pht|asp|aspx|asa|cer|cdx|ashx|exe|sh|bash|jsp|jspx|jspa|html|web.config|cfm|cgi|war|ashx|htaccess|py|pl)$">

                Order allow,deny

                Deny from all

        </Files>

</Directory>

 

  

  

测试结果:当访问后缀名在配置文件黑名单里的文件时,无论大小写均可以进行拒绝。

 

  

二:nginx禁止脚本执行

禁止web根目录下的uploads目录中脚本文件执行,uploads是网站的二级目录,可以更换为需要禁止权限的目录,可以添加多个目录。

1、 编辑nginx安装目录下的配置文件nginx.conf

  

2、 在配置文件nginx.conf中添加以下内容,完成后重启nginx服务器即可生效。

 

location ~* /(uploads|images)/.*\.(php|php2|php3|php4|php5|phpm|phpml|phtml|phtm|phps|pht|asp|aspx|asa|cer|cdx|ashx|exe|sh|bash|jsp|jspx|jspa|html|web.config|cfm|cgi|war|ashx|htaccess|py|pl)$

        {

                deny all;

        }

 

 

 

测试结果:当访问后缀名在配置文件黑名单里的文件时,无论大小写均可以进行拒绝。

 

 

三:Windows下的IIS6.0取消网站目录脚本的执行权限

打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择属性,在目录属性面板选择执行权限为即可。

  

四:IIS7取消服务器网站目录脚本的执行权限

1IIS的左侧选中该目录,切换到功能视图

2打开处理程序映射功能

 

 

3打开右侧的编辑功能权限,将脚本这一项取消掉即可

 

 

限制IIS7的目录执行权限的本质,就是在编辑功能权限之后,会在所在目录建立一个web.config,通过里面的配置来限制该目录的权限,所以,当该目录已经有web.config的时候,建议先查看一下配置,然后在web.config下直接添加,添加代码下面的参考解决办法2

设置时会遇到写入失败的情况解决方法是:

1、有可能是当前目录没有写入权限,添加写入权限即可.

2、你的当前的分区不是ntfs,解决方法,在当前目录手动创建一个web.config文件即可。

下面附上web.config的内容:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.webServer>

        <handlers accessPolicy="Read" />

    </system.webServer>

</configuration>

解释一下这里面要改的地方“<handlers accessPolicy="Read" />”

如果想运行脚本, accessPolicy="Read, Script"

如果想执行脚本,accessPolicy="Read, Execute, Script" 

 

posted @ 2020-08-21 21:03  relax.1949  阅读(726)  评论(0编辑  收藏  举报