以注冊(cè)資料為例:
最基本的是,必須判斷用戶(hù)輸入的信息,例如姓名、密碼等是必須輸入的,網(wǎng)頁(yè)要對(duì)這個(gè)有判斷(有些還限制密碼的長(zhǎng)度,字符等),如果用戶(hù)忘記或故意沒(méi)填,要能給用戶(hù)提示該項(xiàng)必須填;年齡是數(shù)值,如果用戶(hù)填了漢字就不對(duì)啦,也應(yīng)該能判斷,還有生日,郵政編碼等等。
考慮到用戶(hù)使用的瀏覽器有可能不同,也許是微軟的IE,又或者網(wǎng)景的NetScape,不同的瀏覽器支持的客戶(hù)端腳本不一樣,所以還要考慮到腳本兼容性問(wèn)題。假如用戶(hù)稍懂些html知識(shí),還可以繞過(guò)客戶(hù)端的校驗(yàn),所以,還要在服務(wù)端對(duì)提交的資料重復(fù)一次校驗(yàn)。
用戶(hù)注冊(cè)資料都會(huì)涉及到數(shù)據(jù)庫(kù),考慮到安全性問(wèn)題,還要過(guò)濾提交資料中對(duì)數(shù)據(jù)庫(kù)有影響的字符,(例如SQL Server的單引號(hào),分號(hào),注釋符號(hào),系統(tǒng)存儲(chǔ)過(guò)程名等),同時(shí),還要配置數(shù)據(jù)庫(kù)端的數(shù)據(jù)庫(kù)登陸賬號(hào)的權(quán)限,讓其只能執(zhí)行(最理想狀況)數(shù)據(jù)插入操作,這樣可以避免部分的黑客攻擊。
當(dāng)資料通過(guò)這些校驗(yàn)到數(shù)據(jù)庫(kù)后,也不是簡(jiǎn)單的插入數(shù)據(jù)操作,在插入之前還要檢查數(shù)據(jù)庫(kù)是否已經(jīng)存在相同的資料,如果數(shù)據(jù)庫(kù)非常龐大,數(shù)據(jù)量達(dá)百萬(wàn)級(jí)的,還要優(yōu)化查詢(xún)的算法……
另外,在網(wǎng)上提交資料,數(shù)據(jù)包是完全有可能給一些別有用心的人攔截的,這就涉及到采用協(xié)議,或加密的問(wèn)題。再加上網(wǎng)頁(yè)的外觀設(shè)計(jì),交互界面設(shè)計(jì)等其他元素,一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)提交其實(shí)就是設(shè)計(jì)師、技術(shù)員多年來(lái)經(jīng)驗(yàn)積累的成果,可不是“沒(méi)什么技術(shù)”可言喔。