第47章 完成后端代碼
花了三天的時間給倆小孩補齊了課,,剩下的時間王向中都把它們花在了搜索引擎的構建上,,每天就睡四五個小時,一刻都不敢停歇,。
臨近假期結束,,搜索頁面的簡易表單和區(qū)塊布置都已經構建完畢,,讀寫數據庫內容的SQL語句也已經寫得大差不差,只要通過,,便可以走下一步流程了,。
“胖子,你快過來看看,?!蓖跸蛑袑φc李錦光聊的火熱的呂大海說道。
李錦光和呂大海不愧是一路貨色,,兩個人無論是腦子里的思想和脾氣都恰巧這么對上了,,皆是頗有種相見恨晚的感覺。
“中哥,,發(fā)生什么了,?”呂大海瞧見王向中喊自己,旋即也是屁顛屁顛地跑了過來,。
“你看一下這個頁面,,簡單做一個測試?!蓖跸蛑信牧伺膶Ψ降募?,微笑道。
軟件測試,,是一種核查軟件是否正常工作的基本流程,,其目的是為了檢查軟件實際功能與需求是否一致。
這個年代還沒有什么正規(guī)的軟件測試流程,,大概就是請一個用戶隨便操作一下,,看看有沒有bug(程序漏洞)之類的存在,。
一般來講,軟件的開發(fā)者是不參與測試工作的,,因為整體的操作邏輯是由開發(fā)者自己所設定,,所以在操作的時候難免會有些思維固化,導致遺漏掉不少非常規(guī)步驟,。
當然在未來世界也是有正規(guī)科學的測試流程,,首先按照需求寫一套測試用例,接著根據用例所含流程寫一套測試腳本,,使用自動化腳本覆蓋所有操作路徑,,而這也被稱為白盒測試。
聽完了王向中的介紹,,呂大海也是點了點頭,,壞笑道:“那我就盡量折騰了哈!”
“隨便,,只要不把電腦給砸了,。”王向中露出一副無所謂的模樣,。因為呂大海不懂需求,,但同時又會操作電腦,無疑就是最好的測試工具人,。
只見呂大海手持鼠標點來點去,,時而沉思,時而眉頭緊鎖,,約莫過了十分鐘,,才伸了一個懶腰。
“用得怎么樣,?”王向中笑著問道,。
“現在還看不出來,感覺上已經沒什么問題了,?!眳未蠛S行┘{悶,他還是有些不明白,,為什么此刻的王向中懂得這么多,,不僅年紀輕輕就出來做生意,竟然還可以獨立寫一個網站,。
“我說中哥,,你到底吃了什么靈丹妙藥?我實在是不明白,,我們哥倆一樣的年紀,,憑什么你就可以混得風生水起,?”呂大海胖臉上滿是不解之色,就好像王向中的腦子格外好用似的,。
王向中聽到這話也是愣了一下,,才意識到自己的行為確實有些夸張了。
一個人要么早早出社會經商,,要么一頭扎進學校深耕技術和學術,十八歲的年紀就能全盤掌握這兩者,,這確實太逆天了,。
當然王向中不可能承認自己是個穿越者的事實,只能是尷尬著搪塞一番:“哎呀,,我就是運氣好罷了,,換做是你,你也可以,?!?p> 呂大海倒也只是感嘆一句罷了,單純的他并沒有生出什么壞心思,,于是也只是白了對方一眼,,怒罵道:“小氣鬼,你肯定是吃了什么藥,?!?p> 王向中也沒有理會呂大海這番白癡言論,不過這一出倒是提醒了他,,小心駛得萬年船,,日后做事一定要盡量低調一些。
呂大海絕非是唯一一個會提出質疑的人,,也就是他沒什么心機,,若是讓心機重的人逮到了,恐怕又會出什么幺蛾子,。
一想到這,,王向中也是搖了搖頭,迅速將思路扳回到搜索引擎這件事上,。
現在既然已經完成了前后端邏輯上的工作,,接下來就是著手代碼安全方面的工作了。
不像未來的各種后端框架中自帶各種安全措施,,現在依靠原生ASP寫的網站必須要自己去寫邏輯,,實現安全防護功能。
安全防護功能主要針對兩塊內容,,第一是表單SQL注入漏洞補丁,,第二是CC攻擊屏蔽措施,。
所謂SQL注入,就是利用反斜杠號“\”和引號,,改寫原有SQL語句的作用,。
打個比方,像這種搜索引擎的輸入文本框,,一般使用“Select”語句(查詢關鍵詞),,按照內容鍵值匹配索引相對的數據。
文本框的內容在后端往往被視為一個參數,,由于參數類型是String(字符串類型),,因此往往在該參數開頭和結尾還有雙引號的存在。
而參數內部一旦帶有雙引號,,則會對整個語句的執(zhí)行出現偏差,。比如攻擊者可以巧妙地便寫一串含有“Insert”語句(插入數值關鍵詞)或者是指向其它的數據表,看似堅固邏輯緊密的服務就會被瞬間瓦解,。
寫程序的人往往都知道一句話:“永遠不要相信用戶的輸入,。”因此,,在編寫代碼的過程中,,務必要給參數字符進行限制、過濾,、轉義等操作,,才能保障數據層面的安全性。
而CC攻擊比較好理解,,它一般針對于網站,,通過構造大量虛擬訪問或是針對接口的頻繁參數傳遞,使得中間件消耗大量的系統資源,,直至其超出性能承受范圍而崩潰,。
未來的中間件例如nginx或apache都自帶防CC攻擊的安全模塊,而現在王向中所用的IIS3.0顯然是沒有這種東西的,。
因此只能在代碼層面上稍稍限定一番,。例如限定同IP每分鐘所能調用接口的次數,然后在服務器后臺里寫一個監(jiān)控腳本,,每分鐘檢測中間件和數據庫的運行情況,,一旦發(fā)現進程異常,則立刻重啟,。
當然最好的辦法就是前后端分離,,數據和中間件分離,使用CDN或者集群來規(guī)避集中訪問問題,。
但現在第一是沒有技術,,好多需要的技術都還在娘胎里,;第二還是王向中太窮了!就現在賺到區(qū)區(qū)幾萬塊,,別說是建一個集群,,能不能買到一臺合適的服務器都還是問題。
一般來講,,王向中還需要買三臺設備,,第一是應用服務器,第二是三層交換機,,第三是磁盤陣列,。
應用服務器用于部署基本的環(huán)境和代碼,以及執(zhí)行語句的計算工作,;而三層交換機則是兼并了路由器和普通交換機的職能,用于外網連通和內網構建,;至于磁盤陣列,,在這個年代可能還買不到,只能自己手動改一臺普通服務器……
如果再不狠狠賺錢,,恐怕就要來不及了,!