MiniCMS体积小,代码短小易读,可以详细分析其执行流程。通过学习可以大致熟悉MVC框架的构造,对Web server的后台处理有一个基本了解。
MiniCMS是一个针对个人网站设计的微型内容管理系统。它的特点是:
- 不需要数据库在支持,只需要一个可以运行PHP的Web环境
- 只针对个人网站设计,没有复杂的成员管理和权限设置
- 没有分类只有标签,免除发布文章时到底该怎么分类的纠结
- 只有“文章”和“页面”两该个系统,没有“评论”、“插件”、“主题”,让你更专注于创造内容
项目地址:https://github.com/bg5sbk/MiniCMS
安装- 下载最新版的install.php,上传到网站根目录
- 浏览器访问根目录下install.php,填入网站信息和初始账号密码
- 开始安装
这里我们使用phpstudy搭建,运行环境:
- Apache 2.4.39
- PHP 5.6.9
│ build.php
│ index.php 整个项目的入口,首先引入核心库mc-core.php,然后进行路由,对路由结果进行相应的渲染,相当于MVC中的C
│ install.txt 复制为php文件后,用来安装MiniCMS
│ README.md
│
├─mc-admin 管理功能的实现
│ conf.php 用户设置页面,包括接收和保存更改的设置
│ editor.php 编辑器的大小、样式调整的库
│ foot.php html标签构造
│ head.php token 验证,html标签构造;若验证失败,跳转至主页
│ index.php 后台登陆身份验证页面
│ page-edit.php 页面编写处理逻辑,包括显示编辑页面、接收提交的页面、页面序列化储存
│ page.php 管理页面的库,声明加载数据、删除页面、还原页面(从回收站还原)
│ post-edit.php 文章编写处理逻辑,包括显示编辑页面、接收提交的页面、页面序列化储存
│ post.php 管理文章的库,声明加载数据、删除文章、还原文章(从回收站还原)
│ style.css 后台用到的CSS
│
└─mc-files
│ markdown.php 一个开源的markdown解析库
│ mc-conf.php 配置文件,包含用户名和密码等敏感信息
│ mc-core.php 引入mc-tags、mc-conf,声明404函数
│ mc-rss.php 订购RSS的链接
│ mc-tags.php 相当于M,引入markdown、包括一些核心函数,包括了加载各种信息的函数(网站名、文章数、前进后退等,中间有各种过滤,可以重点分析)
│
├─pages
│ └─index
│ delete.php 使用数组储存了删除页面的信息(id、标题、标签等)与data文件夹内的文章数据一一对应
│ draft.php 使用数组储存了草稿页面的信息(id、标题、标签等)与data文件夹内的文章数据一一对应
│ publish.php 使用数组储存了已发布的页面的信息(id、标题、标签等)与data文件夹内的文章数据一一对应
│
├─posts
│ ├─data 储存了文章内容的反序列化数据(文章内容等)
│ └─index
│ delete.php 使用数组储存了删除的文章的信息(id、标题、标签等)与data文件夹内的文章数据一一对应
│ draft.php 使用数组储存了草稿文章的信息(id、标题、标签等)与data文件夹内的文章数据一一对应
│ publish.php 使用数组储存了已发布文章的信息(id、标题、标签等)与data文件夹内的文章数据一一对应
│
└─theme
index.php 主题文件,决定了页面的风格,将C传入的信息显示出来,相当于V
style.css 主题使用的CSS风格
代码审计
系统安装完成之后,install.php重命名为install.txt,没有重装漏洞。
越权漏洞登录逻辑:/mc-admin/index.php
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?