FastAdmin服务器安全

服务器安全涉及目录安全、站点配置、安全组等多方面。

目录安全

目录安全在是经常容易生产问题的一个环节,很多时候我们都会忽略或忘记进行站点目录安全的配置。

我们建议在生产环境只开放uploads和runtime目录的读写权限,其次还需要关闭uploads目录执行PHP的权限,因为很多时候用户上传恶意脚本,而服务端uploads目录又未屏蔽PHP,导致用户数据泄漏丢失。

通常情况在生产环境下建议使用

chown www:www /var/www/yoursite -R
chmod 655 /var/www/yoursite -R
chmod u+w /var/www/yoursite/runtime -R
chmod u+w /var/www/yoursite/public/uploads -R

通过以上的配置还不够,我们还需要继续对服务器做WEB配置以限制PHP脚本的运行

WEB配置

Nginx可以通过以下配置禁止PHP脚本执行

location ~ ^/(uploads|assets)/.*.(php|php5|jsp)$ {                                                                                                   
    deny all;                                                                                                                                         
} 

Apache可以通过在.htaccess中配置来禁用PHP脚本执行

RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]

或使用

<Directory "/www/yoursite/public/uploads">
  <Files ~ ".php">
  Order allow,deny
  Deny from all
  </Files>
</Directory>

其次在新增网站配置时务必绑定public目录为运行目录,同时启用open_basedir限制只允许FastAdmin的根目录,例如:fastcgi_param PHP_VALUE "open_basedir=/var/www/fastadmin/:/tmp/:/proc/";

通常也建议修改php.ini,禁用不安全的函数,配置如disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru

运行配置

首先打开application/config.php,做以下几项配置

app_debug 设置为 false
app_trace 设置为 false
deny_module_list 添加 admin //可以参考 https://ask.fastadmin.net/article/7640.html
cookie.httponly 设置为 true
cookie.secure 设置为 true   //前提是你的网站仅提供https访问

其次前台开启全局过滤,早期FastAdmin版本并未开启全局过滤。你也可以检查下你的代码。请手动修改以下代码:

application/common/controller/Frontend.php
application/common/controller/Api.php

注意修改其中的$this->request->filter过滤代码,可以修改成:

$this->request->filter('trim,strip_tags,htmlspecialchars');

同时也可以参考https://ask.fastadmin.net/article/7534.html 设置全局 HtmlPurifier 安全过滤

最后务必修改后台管理入口,将admin.php修改成自定义字符.php,以后都从我们自定义的后台入口进行登录。

点赞(3) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部