我的第一个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:本系列内容进度节奏会放的很慢,每次知识点都尽量少一点,这样大家接触的知识点少了,会更容易理解,因为少即是多.另外,对于后面代码部分,虽然尽量不用那些复杂的封装和类,但它并不表示看了就能全部记住, ...
随机推荐
- 不是 HTTPS 拖慢网站速度,而是优化做的不够优秀
HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTT ...
- .NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程
写在前面 上一篇文章中我带着大家进行了权限部分的极简设计,也仅仅是一个基本的权限设计.不过你完全可以基于这套权限系统设计你的更复杂的权限系统,当然更复杂的权限系统要根据你的业务来进行,因为任何脱离实际 ...
- nginx切割日志脚本
nginx切割日志脚本 #!/bin/bash #cut nginx log #2018年9月26日14:26:44 #by jiajiezhao ########################## ...
- 如何零基础开始自学Python编程
转载——原作者:赛门喵 链接:https://www.zhihu.com/question/29138020/answer/141170242 0. 明确目标 我是真正零基础开始学Python的,从一 ...
- AVL树和平衡二叉树 平衡因子 右旋转LL 左旋转RR LR RL
前言 今天要介绍几种高级数据结构AVL树,介绍之前AVL,会先说明平衡二叉树,并将树的学习路线进行总结,并介绍维持平衡的方法:右旋转.左旋转. 一.树学习路线 1.路线总结 总结了一下树的学习路线,如 ...
- Chapter 4 Invitations——24
"How do you do that?" I asked in amazed irritation. “你是怎么做到的?”我惊讶的问道. "Do what?" ...
- 动态代理的两种方式,以及区别(静态代理、JDK与CGLIB动态代理、AOP+IoC)
Spring学习总结(二)——静态代理.JDK与CGLIB动态代理.AOP+IoC 目录 一.为什么需要代理模式 二.静态代理 三.动态代理,使用JDK内置的Proxy实现 四.动态代理,使用cg ...
- iOS逆向开发(7):微信伪装他人
上一节小程介绍了微信在进入"附近的人"时修改位置信息的办法,这一次,小程来修改"自己"的信息,伪装成别人. 但是,这里的伪装只是"本地的伪装" ...
- 【Vue.js】加载更多—vue-infinite-scroll
引言 今天用到了一个加载更多的插件,用起来很方便,插件的名字叫做vue-infinite-scroll 我们可以去npmjs.com官网看一下这个vue-infinite-scroll的用法,官网上面 ...
- SpringBoot基础系列-SpringBoot配置
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9990680.html SpringBoot基础系列-SpringBoot配置 概述 属性 ...