php 目录555 权限_CMS网站安全权限划分设置教程

DiYunCMS(帝云CMS)-免费开源可商用的PHP万能建站程序

4bce1febaa5926f240a8b3b12e1f765c.png

CMS网站安全权限划分设置教程

网站安全是网站搭建运营过程中非常重要的一部分,DiYunCMS非常注重安全,开发了强大的安全功能。本文给大家介绍下DiYunCMS网站的安全设置方法。

首先需要安装【系统安全】插件(程序内置)。

下面来介绍一下程序安全设置的方法

本教程需要具备PHP技术或者服务器运维的技术人员。

什么都不懂的新手,千万不要来操作!!!!!!!!

网站安全首选需要让能通过web域名访问的目录都设置为不可写入权限,这样能有力保证服务器不被恶意写入非法的文件。

本教程例子中的网站web目录假设为:/www/www.xxx.com/

一、分离cache目录

程序cache目录必须具备可写入权限,默认可以通过web访问其内容,推荐把cache目录分离到其他目录(SSD硬盘最佳)

1、将cache目录移动到指定目录,例如/www/fenli/cache/

2、打开web目录的 index.php

// 此代码放到【执行主程序】代码之前define('WRITEPATH', '/www/fenli/cache/');

3、赋予新的cache可读写权限,如果网站正常访问就表示ok了

二、分离dayrui目录

dayrui目录是程序文件目录,存储的php业务逻辑程序文件,通常情况下需要具备可读写权限

1、将dayrui目录移动到指定目录,例如/www/fenli/dayrui/

2、打开web目录的 index.php

// 此代码放到【执行主程序】代码之前define('FCPATH', '/www/fenli/dayrui/');

3、赋予新的dayrui只读权限,如果网站正常访问就表示ok了

三、分离模板template目录

template目录是存放模板文件的,实际项目中不建议将其暴露在web目录中,推荐进行分离

1、将template目录移动到指定目录,例如/www/fenli/template/

2、打开web目录的 index.php

// 此代码放到【执行主程序】代码之前define('TPLPATH', '/www/fenli/template/');

3、赋予新的template只读权限,如果网站正常访问就表示ok了

四、分离附件存储目录

uploadfile目录是附件存放的目录,安全起见,强烈推荐进行分离

1、将uploadfile目录移动到指定目录,例如/www/fenli/uploadfile/

2、再web服务器中为此目录绑定一个域名,例如:

www.abc-file.com

顶级域名二级域名都可以

3、必须设置此网站不能执行php代码,以宝塔BT服务器为例的配置:

13f4bddf0bbc491ff9ff6934ef945a78.png

纯静态的目的是为了此目录下的不允许执行php文件,增强被非法写入的安全性

4、进入cms后台,系统,附件设置

6227bac3493296091d4e8c7b74de48b6.png

5、保存再更新缓存后,测试上传附件试试是否正常

五、头像分离存储

/api/member/目录是头像存放的目录,安全起见,强烈推荐进行分离

1、将/api/member/目录移动到指定目录,例如/www/fenli/touxiang/

2、再web服务器中为此目录绑定一个域名,例如:

www.abc-touxiang.com

顶级域名二级域名都可以

3、必须设置此网站不能执行php代码,以宝塔BT服务器为例的配置:

47f03de90b582e1ff9c4c44be84e35cc.png

4、进入cms后台,系统,附件设置,头像分离设置

67a62845e01a5f28ee0b039241564711.png

5、保存再更新缓存后,测试上传头像试试是否正常

六、给web目录设置只读权限

通过上面一到五的配置,已经把能具有写入权限的目录分离出去了,现在web目录剩下的文件都可以不需要写入权限

/www/www.xxx.com/

现在为web目录设置,只读权限,例如555权限。

七、开启跨站验证

bd8b1c01cd487e93860c4f3537a94b92.png

开启之后将有效的防范站外攻击提交POST

八、将后台与web分离

把后台入口不要放在web,单独域名作为后台登录

需要安装《系统安全》插件,设置后台的目录和域名即可,这样后台就彻底的隐藏了。

友情提示:如果网站需要生成静态文件,需要提前为web目录开启读写权限,生成完毕后,再设置只读权限

这样几步操作后,再配合服务器安全防护,网站安全性就非常非常高了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python使用os.listdir和os.walk获得文件的路径

目录 情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir情况2:递归的情况,一个目录下面既有目录也有文件,使用os.walk: os.walk介绍:如何获得一个路径下面所有的…

mac 用yum命令安装mysql_cenos6.4使用yum命令安装mysql

1.查看系统中有没有mysql安装包,命令如下:yum list mysql*如果有需要使用yum remove 文件名 移除已安装的mysql文件2.查看系统中是否还有其他的mysql文件存在,命令如下:rpm -qa|grep mysql如果有使用rpm -e 文件名 进行卸载3.分别…

python 列表生成式

python笔记21-列表生成式 前言 python里面[]表示一个列表,快速生成一个列表可以用range()函数来生成。 对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法,那就是列表生成式了。 range() 1.一个连续的数字类型列表&#xff0…

php mysql grant_mysql grant命令详解_MySQL

bitsCN.comgrant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grant select on testdb.* to common_user%grant insert on testdb.* to common_user%grant update on testdb.* to common_user%grant delet…

python中yield的用法详解——最简单,最清晰的解释

首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了。看做…

python matplotlib简单使用

一、简单介绍 Matplotlib是Python的一个绘图库,是Python中最常用的可视化工具之一。 二、安装方法 安装方法:pip install matplotlib 注意:安装matplotlib前需要先安装numpy才可以 三、基本绘图命令 1、plt.fig([num]) 在绘图过程中&a…

python窗体设计插件_Python 界面生成器 wxFormBuilder 的入门使用(wxPython的界面设计工具的初学笔记)...

环境,Win10,python3.7.3,wxPython 4.0.4,wxFormBuilder 3.91、准备一个窗体。点击wxformbuilder上方的标签“forms”,并点击标签下方的第一个类似窗体的图标“Frame”然后,下面就会出现一个窗体。但是现在还…

mysql配置性能_MySQL配置性能优化

下面配置的优化,可能影响比较大,可能可以显著提高读写性能。1、mysql一些主要配置项介绍:innodb_buffer_pool_size这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个值越大越好,这能保证你…

用cmd编译c++程序

1、设置好环境变量(已安装vs) ①在计算机的系统环境变量--》用户变量--》path中添加 D:\VS15\VC\bin ②新建变量INCLUDE:D:\VS15\VC\include ③新建变量LIB:D:\VS15\VC\lib 2、利用cl编译c文件 打开cmd 输入c…

C++编译运行过程分析

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们…

mysql给用户授权最大_mysql 给用户授权

MySQL用户授权 GRANT 语句的语法如下: GRANT privileges (columns) ON what TO user IDENTIFIEDBY "password" WITH GRANT OPTION 对用户授权 mysql>grant rights on database.* to userhost identified by &qu…

python插入排序_直接插入排序(python实现)

这篇博文用来介绍直接插入排序直接插入排序基本思想:每次将一个待排序的记录插入到已经排好序的数据区中,直到全部插入完为止直接插入排序算法思路:在直接插入排序中,数据元素分为了有序区和无序区两个部分,在这里我们…

STL1-函数模板

1、函数模板和普通函数区别 //普通函数可以进行自动类型转换&#xff0c; //函数模板必须精确类型匹配; //函数模板可以被重载;c优先考虑普通函数;#include<iostream> using namespace std; //函数模板-->产生模板函数-->调用函数 template<class T> T MyAd…

ruby 安装mysql_ruby安装mysql

ruby安装mysqlruby on rails安装mysql数据库1. 下载mysql软件http://www.mysql.cn/mysql中文官方网站下载安装软件&#xff0c;选择5.02. 安装mysql&#xff0c;设置默认字符集为utf-83. 下载mysql for ruby的驱动并安装http://rubyforge.org/搜索mysql&#xff0c;找到mysql -…

jupyter安装与迁移文件

1、安装 pip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple 2、测试安装成功 安装完后输入 jupyter notebook 出现一个jupyter网址&#xff0c;即证明安装成功 3、数据迁移 将之前的jupyter notebook产生的文件复制在python所安装的盘目录下。然…

修正的判定条件覆盖例题_语句覆盖、判断覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修正条件覆盖...

int function(bool a,bool b,boolc){intx;x0;if(a&&(b||c)){x1;returnx;}}1、语句覆盖(SC)选择足够多的测试数据&#xff0c;使得被测程序中的每条语句至少执行一次。测试用例&#xff1a;aT,bT,cT2、判断覆盖(DC)设计足够的测试用例&#xff0c;使得程序中的每个判定至…

STL2-类模板

1、类模板实现 函数模板在调用时可以自动类型推导 类模板必须显式指定类型 #include<iostream> using namespace std;template<class T> class Person { public:T mId;T mAge; public:Person(T id,T age){this->mAge age;this->mId id;}void Show(){cout…

STL3-MyArray动态数组类模板实现

注意 1、右值的拷贝使用 2、拷贝构造函数的使用 #include<iostream> using namespace std;template<class T> class MyArray{ public:MyArray(int capacity){this->mCapacity capacity;this->mSize 0;//申请内存this->pAddr new T[this->mCapac…

mysql udf提权hex_Mysql_UDF提权

Mysql_UDF提权作者&#xff1a;admin 发布于&#xff1a;2013-5-25 18:55 Saturday分类&#xff1a;MYSQLRoot权限一、上传udf.dll小于mysql5.1版本C:\\WINDOWS\\udf.dll 或C:\\WINDOWS\\system32\\udf.dll等于mysql5.1版本%mysql%\\plugin\\udf.dll 用 selectplugin_dir 查询…

STL4-类型转换

#include<iostream> using namespace std;class Building{}; class Animal{}; class Cat :public Animal {}; //Cat是Animal的子类//static_cast //用于内置的数据类型及具有继承关系的指针或者引用 void test01() {int a 97;//static_cast<要转换的类型>(转换的…