一:apache禁止脚本执行

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

 

ios 解除禁止行内脚本的运行 禁止执行脚本_html

 

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>

 

  

ios 解除禁止行内脚本的运行 禁止执行脚本_配置文件_02

  

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

 

ios 解除禁止行内脚本的运行 禁止执行脚本_配置文件_03

  

二:nginx禁止脚本执行

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

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

ios 解除禁止行内脚本的运行 禁止执行脚本_配置文件_04

  

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;
        }

 

 

ios 解除禁止行内脚本的运行 禁止执行脚本_ios 解除禁止行内脚本的运行_05

 

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

 

ios 解除禁止行内脚本的运行 禁止执行脚本_ios 解除禁止行内脚本的运行_06

 

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

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

ios 解除禁止行内脚本的运行 禁止执行脚本_php_07

  

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

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

2、打开“处理程序映射”功能

 

ios 解除禁止行内脚本的运行 禁止执行脚本_html_08

 

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

 

ios 解除禁止行内脚本的运行 禁止执行脚本_ios 解除禁止行内脚本的运行_09

 

限制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" 。