Discuz常用安全策略

Discuz开源论坛代码,so,源代码很容易获取,也容易被利用.针对维护之前论坛的经验和处理整理如下几个注意事项和预防措施

discuz论坛一般几点注意和预防策略:

1. 防止通过php上传漏洞,尤其是php注入jpg这种方式.
   1.1: 在nginx限制 data|images|config|static|source|template 目录禁止执行php文件.
         location ~* ^/(data|images|config|static|source|template )/.*\.(php|php5)$
            { 
               deny all;
            }
   1.2: 更加安全点列出排除的,其他全部禁止
    location ~* ^/(index|forum|group|archiver|api|uc_client|uc_server)/.*\.(php|php5)$
          {
              allow all;
              fastcgi_pass  127.0.0.1:9000;
              fastcgi_index index.php;
              include fcgi.conf;
           }
   1.3: nginx和php-fpm的用户不能登录系统,无shell等
   1.4: 目录权限控制,除了data有写权限,其他都不能写权限
   1.5:  禁止php调用相关函数,尤其是高危函数,在php.ini设置
            open_basedir = .:/tmp/
            disable_functions =                      passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,

proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,

readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,

dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,

getservbyport,disk_getcwd,posix_getegid,posix_get_last_error,posix_getcwd

2. 防止恶意刷新攻击,类似CC导致论坛宕机
    2.1: 使用“limit插件”,limit记录ip的访问频率到redis,将单位时间内达到阈值的ip加入黑名单。对来源ip在黑名单的请求,退出并返回警告。
    2.2:  使用nginx的limit模块限制,具体请看”使用Nginx limit模块使用” 

3. 防止注册垃圾用户和垃圾帖
          可以使用discuz的”防水墙插件”+防灌水设置发帖时间间隔.

4. 一些非法关键字的过滤处理
          论坛自带的”敏感词”过滤功能和第三方插件.

此条目发表在Experience分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注