我和CMS的往事
CMS(内容管理系统)放在web中理解,也就是我们常说的后台了,用于网站的日常管理。又到期末了,我们的课程——web程序设计,需要提交一份期末大作业,最近需要开发出一个基于JSP的简单web,所以呢,就又想起了初做web开发时的往事。因此特来写一篇关于我和CMS从结识到熟悉熟悉的往事。
最初接触网站后台应该是在17年下半年了,当时跟着学长的一个团队做web开发,最初的打算是开发静态的web,当时我也是刚学完html,所以抱着学习的态度,就接下来这个开发的任务。 那个时候是一边学习js,一边做开发。学js的时候,就发现可以通过js来改变页面的内容,于是我天真的想到了,能不能写一个甚至多个不告诉用户的html页面,通过js来改变程序的内容呢?当时哪里知道CMS这种东西早已经被人发明出来了。我还傻傻的去尝试了,发现不行,为什么呢,因为通过js改变的内容只是改变了当前用户浏览器请求过的html页面中的内容,它只是运行在用户浏览器中的页面而已,而且即使改变了当前页面,也无法改变已经请求过的其它页面。后来已经忘记了是怎么知道的前后端程序的区别的了,可能是通过查阅资料吧。那后来知道了前端是运行在浏览器中的,后端程序是运行在服务器端的,所以就开始学了后端语言PHP(现在已经记不清为什么要学习PHP了,我心里有几种可能的原因,这里就不赘述了)。我是在看网上PHP教程的时候发现,教程中在做的东西和我的想法一样(教程就是在做我现在知道的一个叫做后台的东西),当时我真的很惊喜,因为发现自己的想法是可行的,而且很久以前就已经被人所熟悉并使用了。
再往后来的话,就是学PHP,搭个框架,去开发后台页面,也用上数据库去存取数据,一边还在做着前台用户界面及后端程序的开发。那个时候还没有开始写用户注册、登录的功能,因为在项目中没有这个需求,只要求为用户展示就行了(或者说当时开发需求不那么清晰吧),也不知道cookie、session这种东西的存在。做着做着发现了一件有意思的事情^_^,因为我对安全感兴趣,所以我就想了,那如果别人的网站后台偶然的被别人发现了, 那敏感信息不就泄露了吗?这还得了!!!所以就把疑问在网上查了,于是就知道了,通过管理员登录这个功能去做基础的权限把控。于是我就做了个后台首页,把登录功能用上,这样我就给自己的后台加上了个门,你要想进入我的后台,那你就需要知道管理员账号和密码。当然,我也把后台框架做了权限控制,只有登录用户才可以查看内容的。那时根本都不清楚include进来的控制权限的php页面到底作用域有多大,就以为是整个后台都作用到了,也没想这么多。
一个对安全感兴趣的程序员当然会在开发中时刻思考安全问题(至少在当时我把自己所有能想到的可能会出现漏洞的地方都想到了O(∩_∩)O哈哈~),我就发现了,别人会不会不通过我的后台框架去访问我的后台页面,而是直接在URL地址中输入后台页面的绝对路径?那去尝试下,这样我就发现了,在未登录状态下,可以通过直接访问后台页面的方法去访问后台,那这样就好比我房间的门我锁上了,但是我给小偷留了很多窗户,而且还是敞开的窗户!!!解决办法自然是给所有后台页面都include权限控制的php程序。
就这样,后来,我和我自己开发的后台的故事也就基本了解了。随着开发的深入,学习的东西也越来越多,后台自然而然的就很顺利的开发完了。再往后来的话,web开发的任务就完成了,我也离开了项目区搞安全了。搞渗透的时候我才发现,嗯哼?别人有开发好的CMS,而且还是免费的,有这种事!都可以直接通过这种CMS直接搭建一个web了,这是我才知道,原来一点开发不懂也是可以搭建自己的网站是真的可以实现的啊!就算开发,也可以根据别人开发好的CMS进行二次开发自己的web。 这样自己之前费那么大力气开发后台岂不是浪费时间,自己做的还不够安全,这时候真有种觉得自己很渺小的感觉,觉得这个世界上有太多自己不知道的东西了……当然自己当初的辛苦也不会白费,因为它让我成长了,成长总归都是一步一步来的嘛,没有之前,就不会现在的自己,就好像没有现在的自己就不会有将来更加优秀的自己。
我和CMS的往事的更多相关文章
- CMS模板应用调研问卷
截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...
- Kooboo CMS技术文档之五:站点配置管理
站点关系 管理站点间的关系,站点可以有子站点,子站点继承父站点的部分配置数据,同时子站点还可以根据需要,本地化由父站点继承而来的数据.通过继承和本地化,可以让子站点在用最小的改动代价,来完成一个与父站 ...
- Kooboo CMS技术文档之二:Kooboo CMS的安装步骤
在IIS上安装Kooboo CMS Kooboo CMS安装之后 安装的常见问题 1. 在IIS上安装Kooboo CMS Kooboo CMS部署到正式环境相当简单,安装过程是一个普通MVC站点在I ...
- Kooboo CMS技术文档之一:Kooboo CMS技术背景
语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CM ...
- Kooboo CMS技术文档之四:Kooboo CMS的站点组成部分
Kooboo CMS本着功能独立分离的原则,将站点分为三部分组成:用户管理,站点管理和内容数据库管理.各个功能之间既可独立使用,也可以容易组成在一起形成一个完整的系统. 用户管理 管理整个系统内的用户 ...
- Kooboo CMS技术文档之三:切换数据存储方式
切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...
- zerojs! 造出最好的 CMS 轮子
zerojs是一个基于nodejs.angularjs.git的CMS.在它之上可以继续开发出博客.论坛.wiki等类似的内容管理型系统. 拥抱开发者和社区 层次清晰,高度解耦.前后端即使分开也都是完 ...
- 一个小型的CMS后台管理平台发布啦~
由于我不太懂怎么把博客园里我上传的文件共享,所以只好先放到百度网盘里了 数据库和发布的网站都放在这里 http://pan.baidu.com/s/1eQw3DOA 有问题请参考以下链接: http: ...
- 织梦cms常用标签
dedecms简介:织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内知名的PHP开源网站管理系统,也是使用用户较多的PHP类CMS系统,在经历多年的发展,目前的版本无论在功能,还是 ...
随机推荐
- HDU 6055 - Regular polygon | 2017 Multi-University Training Contest 2
/* HDU 6055 - Regular polygon [ 分析,枚举 ] 题意: 给出 x,y 都在 [-100, +100] 范围内的 N 个整点,问组成的正多边形的数目是多少 N <= ...
- 生成CA免费证书
环境 OpenSSL 1.0.2k FireFox 60.0 64位 Chrome 66.0.3359.181 (正式版本)(32位) Internet Explorer 11.2248.14393. ...
- flask框架(三):flask配置文件
flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为: { 'DEBUG': get_debug_flag(default=False), 是否开启Debug ...
- 消息模板-RabbitTemplate
RabbitTemplate是我们在与SpringAMQP整合的时候进行发送消息的关键类该类提供了丰富的发送消息的方法,包括可靠性消息投递.回调监听消息接口ConfirmCallback.返回值确认接 ...
- [BZOJ1123]:[POI2008]BLO(塔尖)
题目传送门 题目描述 Byteotia城市有n个towns.m条双向roads.每条road连接两个不同的towns,没有重复的road.所有towns连通. 输入格式 输入n,m及m条边. 输出格式 ...
- DB 分库分表(1):拆分实施策略和示例演示
DB 分库分表(1):拆分实施策略和示例演示 第一部分:实施策略 1.准备阶段 对数据库进行分库分表(Sharding化)前,需要开发人员充分了解系统业务逻辑和数据库schema.一个好的建议是绘制一 ...
- Ubuntu16.04安装nginx(并启用SSL)
一.安装环境介绍 需要预先安装gcc,通常ubuntu默认自带,所以默认已经有这个环境了,后续步骤默认是使用root账户进行的 二.下载及安装nginx相关组件 1.进入任意目录,我选用的是通常选用的 ...
- 【转】Microsoft SQL Server 2008 R2 官方简体中文正式版下载(附激活序列号密钥)
原文: https://www.bensblog.cn/1238.html
- zipkin-client:brave核心代码思路整理
Zipkin是分布式跟踪系统. 简单地理解,可以将Zipkin分为两部分. 一部分为Zipkin Server,其负责接受存储应用程序处理耗时数据,以及UI展示. 另一部分为Zipkin Client ...
- ubuntu 18.04 64bit下如何源码编译安装anbox
1. 准备工作 1.1 安装gcc 7.x版本 sudo apt-get install gcc-7 -y 1.2 安装依赖的库及其工具 sudo apt install build-essentia ...