花了三天的时间给俩小孩补齐了课,剩下的时间王向中都把它们花在了搜索引擎的构建上,每天就睡四五个小时,一刻都不敢停歇。
临近假期结束,搜索页面的简易表单和区块布置都已经构建完毕,读写数据库内容的SQL语句也已经写得大差不差,只要通过,便可以走下一步流程了。
“胖子,你快过来看看。”王向中对正与李锦光聊的火热的吕大海说道。
李锦光和吕大海不愧是一路货色,两个人无论是脑子里的思想和脾气都恰巧这么对上了,皆是颇有种相见恨晚的感觉。
“中哥,发生什么了?”吕大海瞧见王向中喊自己,旋即也是屁颠屁颠地跑了过来。
“你看一下这个页面,简单做一个测试。”王向中拍了拍对方的肩,微笑道。
软件测试,是一种核查软件是否正常工作的基本流程,其目的是为了检查软件实际功能与需求是否一致。
这个年代还没有什么正规的软件测试流程,大概就是请一个用户随便操作一下,看看有没有bug(程序漏洞)之类的存在。
一般来讲,软件的开发者是不参与测试工作的,因为整体的操作逻辑是由开发者自己所设定,所以在操作的时候难免会有些思维固化,导致遗漏掉不少非常规步骤。
当然在未来世界也是有正规科学的测试流程,首先按照需求写一套测试用例,接着根据用例所含流程写一套测试脚本,使用自动化脚本覆盖所有操作路径,而这也被称为白盒测试。
听完了王向中的介绍,吕大海也是点了点头,坏笑道:“那我就尽量折腾了哈!”
“随便,只要不把电脑给砸了。”王向中露出一副无所谓的模样。因为吕大海不懂需求,但同时又会操作电脑,无疑就是最好的测试工具人。
只见吕大海手持鼠标点来点去,时而沉思,时而眉头紧锁,约莫过了十分钟,才伸了一个懒腰。
“用得怎么样?”王向中笑着问道。
“现在还看不出来,感觉上已经没什么问题了。”吕大海有些纳闷,他还是有些不明白,为什么此刻的王向中懂得这么多,不仅年纪轻轻就出来做生意,竟然还可以独立写一个网站。
“我说中哥,你到底吃了什么灵丹妙药?我实在是不明白,我们哥俩一样的年纪,凭什么你就可以混得风生水起?”吕大海胖脸上满是不解之色,就好像王向中的脑子格外好用似的。
王向中听到这话也是愣了一下,才意识到自己的行为确实有些夸张了。
一个人要么早早出社会经商,要么一头扎进学校深耕技术和学术,十八岁的年纪就能全盘掌握这两者,这确实太逆天了。
当然王向中不可能承认自己是个穿越者的事实,只能是尴尬着搪塞一番:“哎呀,我就是运气好罢了,换做是你,你也可以。”
吕大海倒也只是感叹一句罢了,单纯的他并没有生出什么坏心思,于是也只是白了对方一眼,怒骂道:“小气鬼,你肯定是吃了什么药。”
王向中也没有理会吕大海这番白痴言论,不过这一出倒是提醒了他,小心驶得万年船,日后做事一定要尽量低调一些。
吕大海绝非是唯一一个会提出质疑的人,也就是他没什么心机,若是让心机重的人逮到了,恐怕又会出什么幺蛾子。
一想到这,王向中也是摇了摇头,迅速将思路扳回到搜索引擎这件事上。
现在既然已经完成了前后端逻辑上的工作,接下来就是着手代码安全方面的工作了。
不像未来的各种后端框架中自带各种安全措施,现在依靠原生ASP写的网站必须要自己去写逻辑,实现安全防护功能。
安全防护功能主要针对两块内容,第一是表单SQL注入漏洞补丁,第二是CC攻击屏蔽措施。
所谓SQL注入,就是利用反斜杠号“\”和引号,改写原有SQL语句的作用。
打个比方,像这种搜索引擎的输入文本框,一般使用“Select”语句(查询关键词),按照内容键值匹配索引相对的数据。
文本框的内容在后端往往被视为一个参数,由于参数类型是String(字符串类型),因此往往在该参数开头和结尾还有双引号的存在。
而参数内部一旦带有双引号,则会对整个语句的执行出现偏差。比如攻击者可以巧妙地便写一串含有“Insert”语句(插入数值关键词)或者是指向其它的数据表,看似坚固逻辑紧密的服务就会被瞬间瓦解。
写程序的人往往都知道一句话:“永远不要相信用户的输入。”因此,在编写代码的过程中,务必要给参数字符进行限制、过滤、转义等操作,才能保障数据层面的安全性。
而CC攻击比较好理解,它一般针对于网站,通过构造大量虚拟访问或是针对接口的频繁参数传递,使得中间件消耗大量的系统资源,直至其超出性能承受范围而崩溃。
未来的中间件例如nginx或apache都自带防CC攻击的安全模块,而现在王向中所用的IIS3.0显然是没有这种东西的。
因此只能在代码层面上稍稍限定一番。例如限定同IP每分钟所能调用接口的次数,然后在服务器后台里写一个监控脚本,每分钟检测中间件和数据库的运行情况,一旦发现进程异常,则立刻重启。
当然最好的办法就是前后端分离,数据和中间件分离,使用CDN或者集群来规避集中访问问题。
但现在第一是没有技术,好多需要的技术都还在娘胎里;第二还是王向中太穷了!就现在赚到区区几万块,别说是建一个集群,能不能买到一台合适的服务器都还是问题。
一般来讲,王向中还需要买三台设备,第一是应用服务器,第二是三层交换机,第三是磁盘阵列。
应用服务器用于部署基本的环境和代码,以及执行语句的计算工作;而三层交换机则是兼并了路由器和普通交换机的职能,用于外网连通和内网构建;至于磁盘阵列,在这个年代可能还买不到,只能自己手动改一台普通服务器……
如果再不狠狠赚钱,恐怕就要来不及了!