我的第一个python web开发框架(22)——一个安全小事故
在周末的一个早上,小白还在做着美梦,就收到了小美的连环追魂call,电话一直响个不停。
小白打着哈欠拿起电话:早上好美女。
小美:出事了出事了,我们公司网站一早访问是一片空白,什么内容都没有了,你赶急上去看看是怎么回事。
小白一听到马上紧张了起来,赶紧说:好的,我先看看,一会回电话给你。
小白说完赶紧打开电脑,登录网站查看,发现网站内容不见了,然后登录后台查看,发现后台产品记录都不见了,公司简介和联系我们也是空白的......
小白赶紧打通小美电话,和她沟通了起来:这是什么时候发现的?你们网站最近有没有更新过?有多少人知道管理员账号和密码??
小美:是早上一早发现的,我们老板早上起来打开网站时发现一片空白,就打电话给我了,打了你一早电话也没接听。网站上线后,一直都没怎么更新内容。知道网站管理员密码的有好几个人,不过有一个人前段时间离职了,不知是否有关。另外,密码一直是123456没有改过。
小白:嗯嗯,这肯定是有人搞破坏造成的,不知是那个离职人员还是外面的人黑了进来造成的。还好数据库我做了备份,一会我恢复一下,接下来我会重新设计一下后台管理系统权限,完善权限管理,免得大家担心受怕的。
小美:好的,尽快弄好,搞好后马上告诉我。
......
小白忙碌了一个早上,终于恢复了网站的正常运行。
下午小白将老菜约了出来,并将早上发生的事情详细的讲了讲,寻求老菜的帮助。
小白:老大,事情的经过就是这个样子,上次项目结束时,你说过我的代码存在很多问题,所以我也想趁着这次机会,全部重新设计重构代码,你有什么好的建议,指点一下。
老菜:经历是最好的成长机会,只有经历过才会重视系统安全,重视代码质量和开发流程。之前你刚做项目,和你提了很多内容,你可能都没太注意,这次是一个很好的契机,利用这个机会重新设计系统并重构代码,完成后你的技术应该就会有一个质的飞跃,当然也会遇到更多的问题,你需要做好挑战的准备。
首先要确认的是,你是想解决当前这个权限管理问题?还是通过这次机会,将代码全部重构,完善开发框架与系统?因为不同的目标工作量是完全不一样的。前者只需要改造后台管理系统,增加权限管理就可以实现;而后者,有可能所有代码都需要重新编写,工作量也会很大。
小白想了想:嗯......通过这个项目的开发,让我掌握了很多开发技能,而这些都是很初级的,难得有这个项目可以继续练手,我也希望可以拥有自己的开发框架,这样以后开发起来更能得心应手。
老菜:好的,如果你没有准备好的话,我会建议你采用循序渐进的方法进行重构,通过多次反复的重构,慢慢完善你的框架与系统,最终得到一个成熟的开发框架,也能深入的掌握相关的技术,这个过程可能会很长。而另一个办法,就是通过我的指导,可以快速进入状态,按我所说的办法与注意事项,一步到位,全方位掌握开发流程与相关技术,整个过程可能会比较难,有些技术也会比较难以理解,可能需要囫囵吞枣式的学习,需要事后自己反复的思考、练习与debug运行,才能慢慢掌握。
既然你想要系统的学习,那么首先要做的就是规范化,代码做好版本控制管理,接口必须要有接口文档,代码需要封装与重构等等,具体后面我会详细介绍。
PS:进入新公司几个月来,天天从早忙到晚上12点,几乎没有节假日,4个月一下就过去了,现在仍然还是很忙,但起码可以喘一口气了,年初定下要完成本系列博文第二部分的目标,从本月开始会继续进行,尽量每周抽出一个晚上来写博,争取在年内写完,至于后续部分的内容,以后看缘份吧。
接下来会花不少章节,再一次介绍开发前要做的一些必要准备,然后再一步步引出ORM、代码分层、权限系统、异常排查、装饰器等内容,具体顺序和内容会根据需要进行适应的调整。
版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
python开发QQ群:669058475(本群已满)、733466321(可以加2群) 作者博客:http://www.cnblogs.com/EmptyFS/
我的第一个python web开发框架(22)——一个安全小事故的更多相关文章
- 我的第一个python web开发框架(41)——总结
我的第一个python web开发框架系列博文从17年6.7月份开始写(存了近十章稿留到9月份才开始发布),到今天结束,一年多时间,想想真不容易啊. 整个过程断断续续,中间有段时间由于工作繁忙停了好长 ...
- 我的第一个python web开发框架(14)——后台管理系统登录功能
接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...
- 我的第一个python web开发框架(1)——前言
由于之前经验不是很丰富,写的C#系统太过复杂,所以一直想重写,但学的越多越觉得自己懂的越少,越觉的底气不足.所以一直不敢动手,在内心深处对自己讲,要静下心来认真学习,继续沉淀沉淀.这两年多以来找各种机 ...
- 我的第一个python web开发框架(3)——怎么开始?
小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML ...
- 我的第一个python web开发框架(32)——定制ORM(八)
写到这里,基本的ORM功能就完成了,不知大家有没有发现,这个ORM每个方法都是在with中执行的,也就是说每个方法都是一个完整的事务,当它执行完成以后也会将事务提交,那么如果我们想要进行一个复杂的事务 ...
- 我的第一个python web开发框架(6)——第一个Hello World
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...
- 我的第一个python web开发框架(2)——第一个Hello World
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...
- 我的第一个python web开发框架(2)——一个简单的小外包
第一部分说明 第一部分大概有20来章,主要讲的是一些开发常识.开发前中后期准备内容.开发环境与服务器部署环境安装设置.python基础框架结构与功能等内容,代码会比较简单. 本系列会以故事的方式,向大 ...
- 我的第一个python web开发框架(7)——本地部署前端访问服务器
PS:本系列内容进度节奏会放的很慢,每次知识点都尽量少一点,这样大家接触的知识点少了,会更容易理解,因为少即是多.另外,对于后面代码部分,虽然尽量不用那些复杂的封装和类,但它并不表示看了就能全部记住, ...
随机推荐
- 【转】linux防火墙配置
开启80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent 出现success表明添加成功 命令含义: --zone #作用域 -- ...
- Session知识点
知识点概要 - Session - CSRF - Model操作 - Form验证(ModelForm) - 中间件 - 缓存 - 信号 内容详细: 1. S ...
- JDK1.8 ConcurrentHashMap源码阅读
1. 带着问题去阅读 为什么说ConcurrentHashMap是线程安全的?或者说 ConcurrentHashMap是如何防止并发的? 2. 字段和常量 首先,来看一下ConcurrentHa ...
- .NET Core脚本工具dotnet-script
什么是dotnet-script "dotnet-script"是github上一个开源的.net core global tool, 项目地址https://github.com ...
- Linux svn checkout时候总报设备上没有空间
详细报错信息:svn: 不能打开文件“weibosearch2.0.0/.svn/lock”: 设备上没有空间 但是df -h查看磁盘[root@picdata-1-2 data]# df -h文件系 ...
- [十六]基础类型BigInteger简介
BigInteger和BigDecimal都是Java针对大数提供的类 超出了java的表示范围 属性简介 借助于signum和mag 来实现数据的符号位和实际数据的保存 final in ...
- javascript中filter的用法
filter filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素. 和map()类似,Array的filter()也接收一个函数.和map()不同的是,filter ...
- 阿里巴巴的26款超神Java开源项目!
来源:https://segmentfault.com/a/1190000017346799 1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud ...
- 冒泡排序/选择排序/插入排序(c#)
---恢复内容开始--- 每次看这些排序都像没见过一样,完全理解不了,可是不久前明明了解的十分透彻.记下来记下来记下来! 1>>>冒泡排序:相邻的两两相比 把大的(或者小的)放后边, ...
- C#/VB.NET 给Word文档添加/撤销书签
在现代办公环境中,阅读或者编辑较长篇幅的Word文档时,想要在文档中某一处或者几处留下标记,方便日后查找.修改时,需要在相对应的文档位置插入书签.那对于开发者而言,在C#或者VB.NET语言环境中,如 ...