我和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系统,在经历多年的发展,目前的版本无论在功能,还是 ...
随机推荐
- CodeForces 788A - Functions again [ DP ]
反着求一遍最大连续子序列(前项依赖) #include <bits/stdc++.h> using namespace std; #define LL long long ; int n; ...
- Codecombat 游戏攻略——JavaScript编辑语言——关卡(计算机科学四)Ⅱ
第16关:潜伏 // 用findEnemies把敌人存在数组enemies中 // 只攻击萨满巫师,不要攻击牦牛! var enemies = hero.findEnemies(); var enem ...
- react-native 各种插件
https://www.cnblogs.com/skylor/p/5783824.html
- webstorm 使用指南
1. webstrom打开多个项目 默认情况下一次只能打开一个项目,如果需要打开多个就按照下面的方法: Preferences -> Directories -> Add Content ...
- HZOJ 20190727 随(倍增优化dp)
达哥T1 实际上还是挺难的,考试时只qj20pts,还qj失败 因为他专门给出了mod的范围,所以我们考虑把mod加入时间复杂度. $50\%$算法: 考虑最暴力的dp,设$f[i][j]$表示进行$ ...
- HDU6140--Hybrid Crystals(思维)
Hybrid Crystals Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- MySQL_(Java)使用JDBC创建用户名和密码校验查询方法
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL数据库中的数据,数据库名garysql,表名garytb,数据库中存在的用户表 通过JDBC对MySQL中的数据用户名和密码 ...
- zookeeper系列(六)zookeeper的系统模型(数据树)
作者:leesf 掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6072597.html尊重作者原创,奇文共欣赏,大家共同学 ...
- leetcode题目10.正则表达式匹配(困难)
题目描述: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 ...
- Linux 解压小全
.gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .zip 解压:unzip FileName.zip 压缩:zi ...