当前位置: 首页 > news >正文

服务器安全文件,服务器安全 - FastAdmin框架文档 - FastAdmin开发文档

服务器安全

文档最后更新时间:2020-10-01 20:48:12

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

目录安全

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

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

通常情况在生产环境下建议使用chown www:www /var/www/yoursite -R

chmod 555 /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]

或使用

Order allow,deny

Deny from all

其次在新增网站配置时务必绑定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');

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

未解决你的问题?请到「问答社区」反馈你遇到的问题

afea415546f123f36dbc6bf71f9464a9.png

相关文章:

  • 文件服务器对内存要求高吗,文件服务器对内存要求高吗
  • 龙ol一键端服务器维护,龙OL一键端纯一键点两下OK问题及解答汇总贴.doc
  • 网站服务器好还是主机,网站用主机好还是服务器好
  • 王牌战争文明重启服务器维护费,王牌战争文明重启9月1日维护更新公告
  • 宽带断电后连不上网服务器无响应,为什么我家装的电信宽带一停电就连不上去...
  • 服务器无法验证补丁文件,客户端无法从WSUS更新补丁,正常报告
  • Shell编程五次机会猜数字大小
  • java环境变量的配置
  • 关于django python manage.py startapp 应用名 出错异常原因
  • IDEA中用echart写出中国疫情分析情况(含地图 非动态)
  • 关于Django 端口启动运行异常原因
  • django连接mysql数据库
  • django数据库的字段新增和添加数据
  • 爬取贝壳网的40000条基本数据
  • 配置好了但 hadoop的Datanode无法启动
  • 《Java编程思想》读书笔记-对象导论
  • 2017前端实习生面试总结
  • AHK 中 = 和 == 等比较运算符的用法
  • Angular数据绑定机制
  • Docker 笔记(2):Dockerfile
  • ES2017异步函数现已正式可用
  • KMP算法及优化
  • Mac转Windows的拯救指南
  • oldjun 检测网站的经验
  • React Native移动开发实战-3-实现页面间的数据传递
  • V4L2视频输入框架概述
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 欢迎参加第二届中国游戏开发者大会
  • 前端存储 - localStorage
  • 前端面试之闭包
  • 如何解决微信端直接跳WAP端
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​香农与信息论三大定律
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #git 撤消对文件的更改
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (C++17) optional的使用
  • (C语言)球球大作战
  • (MATLAB)第五章-矩阵运算
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十六)Flask之蓝图
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 依赖注入和配置系统
  • .NET基础篇——反射的奥妙
  • .NET性能优化(文摘)
  • .NET业务框架的构建
  • .NET运行机制
  • .stream().map与.stream().flatMap的使用
  • :“Failed to access IIS metabase”解决方法
  • @ComponentScan比较