咕叽 發表於 2023-9-11 00:00:00

DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)

<p>
        其实dedecms官方网站也给出了一些安全设置的参考,其实下面的文章都是根据这个而来,再继续往下看:<br><br>
        首先:服务器安全设置之 IIS用户设置方法,其实各个网站独立用户才比较安全<br><br>
        网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。 <br><br><strong>Windows下的IIS IIS6.0 </strong><br>
        打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可。(如图1) </p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/00b7d34255864bcb068679dada9c7e2f.jpg"></p>
<p>
        <br><strong>IIS7</strong> <br>
        IIS7也类似于IIS6.0,选择站点对应的目录,data、uploads及静态html文件目录,双击功能试图面板中的“处理程序映射”(如图2) <br>
         </p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/e74344c8b4b1225a736a4c96cb399703.jpg"></p>
<p>
        在“编辑功能权限……”中,我们直接去除脚本的执行权限即可。(如图3) </p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/4e286c7bda9cf29f86f08188d702426a.jpg"></p>
<p>
        其实上面只是介绍了如果取消执行权限,根据官方的推荐还需要设置目录写权限的设置方法,这里简单的介绍下<br>
        例如a目录,一般是生成静态页面用的,那么我们就需要服务器端设置(dederun是iis中运行网站匿名用户)<br><img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" height="443" src="https://zhuji.jb51.net/uploads/img/20230519/98e2de98577fa1ad1c8bada4f318b1f9.jpg" width="366"><br><br><strong>Apache下目录脚本的执行权限设置 独立主机配置</strong> <br>
        在Apache中,没有Windows 下IIS的图形管理界面,我们需要手工修改下apache的配置文件,来进行目录脚本的执行权限的设定。 <br>
        首先我们找到apache的配置文件httpd.conf,通常情况下,该配置文件在apache安装目录下的conf文件夹中(如图4)。 <br>
         </p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/9784b558a0144a5c91a261aeed04541d.jpg"></p>
<p>
        (图4)</p>
<p>
        打开httpd.conf文件,找到内容中如图5的位置:</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/de06c7cb9e8f0f359da4c65f4c16204d.jpg"></p>
<p>
        (图5)</p>
<p>
         </p>
<p>
        将需要限制执行脚本文件的目录配置添加到下方:</p>
<p>
        配置内容为: <br><br>
         </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div id="phpcode3">
        <br>
        &lt;Directory "DIR"&gt; <br>
        &lt;FilesMatch ".(php|asp|jsp)$"&gt; <br>
        Deny from all <br>
        &lt;/FilesMatch&gt; <br>
        &lt;/Directory&gt; </div>
<p>
        <br><br><span>配置内容中的DIR为需要限制执行脚本文件的目录,FilesMatch后的内容为需要限定的执行的脚本后缀名。例如:这里需要禁止测试站点uploads文件夹下的PHP,ASP,JSP脚本的运行,则进行如下图6配置: </span></p>
<p>
         </p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/074526506a678a6e88e75abbad1982d9.jpg"></p>
<p>
        (图6)</p>
<p>
         </p>
<p>
        在配置完成后,重启一下apache,配置便生效!<br>
        在操作前,uploads文件夹下我新建了一个index.php文件,图7为未作配置前访问情况</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/4fc91e9ee7d10b0c9de005bdf4117c23.jpg"></p>
<p>
        (图7)</p>
<p>
        图8为重启apache后访问该页面的效果。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" alt="DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)" src="https://zhuji.jb51.net/uploads/img/20230519/694a2c3a01e589747aec0034a1b47af1.jpg"></p>
<p>
        (图8)</p>
<p>
        <strong>虚拟主机/空间配置</strong></p>
<p>
        <br>
        在配置前需要确认你的空间是否支持.htaccess和rewrite,该方法基于.htaccess文件中使用rewrite来达到禁止指定脚本的运行效果。<br>
        规则内容如下:</p>
<p>
         </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div id="phpcode4">
        <br>
        RewriteEngine on RewriteCond % !^$ <br>
        RewriteRule uploads/(.*).(php)$ –  <br>
        RewriteRule data/(.*).(php)$ –  <br>
        RewriteRule templets/(.*).(php)$ –  </div>
<p>
        <br><br><span>针对uploads,data,templets 三个目录做了执行php脚本限制; </span><br><span>将如上内容存储至到.hatccess文件中,将该文件存放到你的站点根目录下, </span><br><br><span>这样,目录脚本的执行权限就控制好了,规则上传前后的效果同图7,图8。 </span><br><br><strong>nginx环境规则内容如下:nginx执行php脚本限制 </strong><br><br><span>LNMP有一个缺点就是目录权限设置上不如Apache,有时候网站程序存在上传漏洞或类似pathinfo的漏洞从而导致被上传了php木马,而给网站和服务器带来比较大危险。建议将网站目录的PHP权限去掉,当访问上传目录下的php文件时就会返回403错误。 </span><br><br><span>首先要编辑nginx的虚拟主机配置,在fastcgi的location语句的前面按下面的内容添加: </span><br><br><br><span>代码如下: </span></p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div id="phpcode5">
        <br>
        location ~ /(data|uploads|templets)/.*\.(php|php5)?$ { <br>
        deny all; <br>
        } </div>
<p>
        <br><span>好了就这些吧,做了这些应该不会有什么问题基本够用!建议用dedecms的朋友花点时间去设置一下. </span><span>如果上述设置不是很清楚的,可以到www.jb51.net</span><span>寻求帮助,里面很多文章与软件都是精心整理的。</span></p>
頁: [1]
查看完整版本: DEDECMS安全设置 执行php脚本限制设置方法(iis6+iis7+apache+nginx)