前言:哈哈,最近好久没更新博客了,如果看了标题,想必已经猜到了这段时间在干什么?嘻嘻,对安全狗第一次开发项目。
大二专业分方向的时候我毫不犹豫地选择了安全方向,当时的想法非常单纯,我不会敲代码,没有做过项目,所以我要选择安全方向,(一入安全深似海呀)当时天真地以为只要做了安全就再也不用敲代码了,只要学会使用别人的工具就可以了,真是一句句too young too simple 送给当时的自己。
大概也就是一个月前,我的好朋友张飞(肯定不是真名啦),跟我说最近有一个微信小程序大赛,要不我们一起合作写一个项目吧!当时听到这话的时候,一个大大的黑人问号映入了我的眼帘,纳尼你是不是找错人了,我是安全狗呀,开发项目不应该找我呀,张飞回答道,我想结合你的安全知识和我的开发知识开发一个好玩的东西.可是我在开发方面是零基础,零经验呀,到时害怕耽误项目的进程……张飞回答到你负责微信小程序端的实现,我负责后台的实现,node.js还有PHP(当时张在犹豫是用PHP开发后台还是用node.js,最终还是选择使用了node.js)开发后台我也是零基础,刚好我们可以现学现用,学以致用,我唯唯诺诺地答应了.
项目进行的前一个星期,可以说我负责的前端是毫无进展,当时就一个简单的问题都迷惑了我好几天,我前台的数据怎么插入到后台的数据库,我一直在想怎么实现这个差不多想了有两天,想的非常困惑,无意之间看见关羽(哈哈,另外一个好哥们)也在做后台,当时我就问:关羽,你前台的数据怎么传入到后台然后再插入到数据库中呀,关羽很吃惊地看着我,然后淡淡地说了一句:这不很简单吗,你不知道request请求吗,(实在是太垃圾了,他说了这个我不是很明白,因为没开发过项目,所以不知道一个稍微大型的软件是怎么运行的),我就很不要意思地说了一句哦我知道了,其实我还是不知道。
我在百度上百度了一下,这才知道,原来request请求就是客户端向服务端请求,而且最常见的请求方式有post get这不是burpsuit 上抓包上的数据报头嘛,这也反应了一个问题就是我在学知识的时候很多原理性的东西没有搞明白,所以才会出这么大的洋相,而且request已经被微信封装好了的,这就和python 中爬虫一个原理,看到这里的时候在我心中徘徊两天的问题终于清楚了。
在接下来的三四天我就开始熟悉微信开发的规则,也就是几个文件之间的联系,wxml,wxss,js,json。由于微信的开发规则几乎是全部继承了html,js,css的规则,所以使用和理解起来也不是很难,但关键是……js,html这种东西之前随便玩过,真的要拿来开发项目,以前的知识储备是远远不够的。由于这个问题就导致了我在写微信前端的时候进程很慢,哈哈其实张飞也很慢啦,但是人家慢是因为在设计后台数据库还有借口,我之所以慢是因为不会(┭┮﹏┭┮)由于进程很慢我一度产生了想退出的想法,但是想到既然张飞主动找我那说明张飞还是很相信我的实力的嘛?这里就要感谢张飞在开发过程中循循善诱,以及不厌其烦地帮我解决问题,这种状态打开持续了一个星期,经过这一个星期的磨练,我已经具备独立开发独立解决问题的能力,所以后面两个星期进程就很快了,最终在昨天(也就是星期六)完成了全部的任务,然后我就张飞说:”我要撂挑子不干了”,因为我的雅思考试是在六月份嘛,因为之前开发这个项目,已经占据了我几乎全部的空闲时间(主要是由于之前不懂所以花费了大量的时间来熟悉基础的东西),张飞也很快同意了.经过这一月的开发我觉得收获还是挺多的,就比如说前端与后台的交互,之前对很多攻击比如sql注入,xss,输入验证呀,还有弱密码等等的理解实在太片面了,太表皮了,很多内部的原理不是很明白,这次开发的经验可以说对我以后学习的借鉴意义和大,下面我总结了一下,在写作开发过程中的一些注意点(当然可能都是一些很基本的东西,以前没有协作开发过,所以这些问题一直没有注意过)
(1) 协作开发代码一定要规范,改写的注释一定要写清,而且前后台使用的变量名一定要一致,这对后续程序出了问题,解决问题很重要。
(2) 开发之前尽量实习相关的官方文档,其实在开发过程中,你能遇到的问题,官方肯定也遇到过,所以官方会把一些,不好解决的或者经常使用的函数给封装起来。
(3) 不要畏惧困难,对不懂,不会的东西,一定不要害怕,只要你肯花时间,就肯定解决。
(4) 团队开发的时候要多交流,就拿张飞来说吧(当然他写的后台接口已经非常完美,而且灰常规范)他写的接口其实在真正调用的时候也是会出现一些问题的,遇到问题的时候我经常跟他交流,他也在不断改进接口。
下面就分享一下我们的项目结果(#^.^#)嘻嘻(主要功能实现了还没进行美化)
后记:网安学习之路不能仅仅学习怎么使用工具,其实如果原理没搞清很多工具也不会用的很好,(* ̄︶ ̄)加油