主頁 > 知識庫 > 程序開發(fā)中的幾個請不要相信

程序開發(fā)中的幾個請不要相信

熱門標簽:交行外呼系統(tǒng)有哪些 寧夏保險智能外呼系統(tǒng)哪家好 防城港市ai電銷機器人 隨州銷售外呼系統(tǒng)平臺 激戰(zhàn)黃昏地圖標注說明 不同的地圖標注 怎么更改地圖標注電話 臨滄移動外呼系統(tǒng)哪家有 溫嶺代理外呼系統(tǒng)
鏈接中的例子是一些腳本攻擊相關的內容,有時間的朋友可以點開看看。

1.不要相信Request.QueryString:

相信在asp時代,這個問題比較嚴重,不信,隨便到網絡上找?guī)讉€asp的企業(yè)站,找到這種url"view.asp?id=xxx",改成"view.asp?id=xxx or 1=1",相信你會看到不一樣的東西,到了.net,應該很少了,不過上次看到有人說CSDN爆過哦,簡單的解決方法是在取得數據時做數據類型驗證或轉換。比如:
int ViewID = 0;
if(int.TryParse(Request.QueryString["ID"], out ViewID)){
//...
}
2.不要相信maxlength:
 有時候我們想客戶端輸入的某個值不超過一定的長度,這個時候可能就會用到input的maxlength,但maxlength能100%保證這個值的長度不超過maxlength嗎?

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

顯然,maxlength是不可信的,簡單的解決辦法是后臺代碼驗證數據長度:
string UserName = Request.QueryString["UserName"];
if(!string.IsNullOrEmpty(UserName)UserName.length > x){
//...提示錯誤或截斷數據
}
3.不要相信Hidden:
有時候我們想把些信息保存到前臺頁面,然后再發(fā)送回來,但是我們又不想讓客戶看到這個信息,于是,我們把數據放到了hidden里面,那客戶提交數據時,hidden里的內容真的是我們放的內容嗎?

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

這個我一時也沒想到好的驗證方法,暫時也沒有特殊的需求說必須驗證。
4.不要相信客戶端驗證:

比如2和3中的問題,可能有的朋友覺得,我客戶端再加個驗證不就OK了嗎?可是,往往,客戶端驗證也是不安全的,首先,如果客戶端禁用腳本,那客戶端驗證是完全失效的,另外,在腳本有效的情況下,腳本驗證也是可以被篡改的。

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

以前QQ空間里可以通過這個方法免費使用黃鉆模板,不知道現在還有沒有。這個就沒有什么好的解決辦法,只能后臺再驗證一次。
5.不要相信編輯器:

有的時候,可能項目中要用到一些簡單的編輯器,于是,我們就找到了一些編輯器,把不需要的功能(比如:編輯源碼、插入圖片等)剔除掉,就成了個簡單的編輯器,那這樣的編輯器還會有什么問題嗎?

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

暫時也沒有什么好的解決辦法,以前找到過過濾script標簽的代碼,但似乎不太完美。
6.不要相信Cookie:
網站中不可避免的會使用到Cookie,但如果一不注意,小心你的Cookie成了別人的"Cookie",
http://img.jb51.net/online/demo0415/Cookie.asp
取Cookie和寫Cookie的js方法是在網上找到的,具體鏈接也找不到了。解決辦法,似乎是Cookie加密(當然,即使是加密了,也盡量不要把敏感數據放到Cookie中),不知道各位高手還有沒有其它好辦法。
7.不要相信Request.UrlReferrer:
如果有朋友用這個來驗證請求,那么請注意了,這個東西也是不可信的。見代碼;
System.Net.HttpWebRequest request = System.Net.WebRequest.Create("https://www.jb51.net/") as System.Net.HttpWebRequest;
request.Referer = "https://www.jb51.net/";
...
那么,這個時候你取得的Urlreferrer會是https://www.jb51.net/,但這個請求卻是偽造的。
8.不要相信用戶:
用戶就是你潛在的威脅,客戶端的東西,永遠都不要輕信。
另,select標簽的內容也是不可信的,大家可以動手試試,隨便建個頁面,里面放個select,然后:
復制代碼 代碼如下:

javascript:alert(window.c=function(){var s=document.getElementsByTagName("select")[0];for(var x = 0; x 100; x++){s.options[x]=new Option("選項" + x, x)}}());

歡迎高手不吝賜教。示例代碼下載。

標簽:無錫 紅河 河源 沈陽 忻州 阜陽 哈密 青海

巨人網絡通訊聲明:本文標題《程序開發(fā)中的幾個請不要相信》,本文關鍵詞  程序開發(fā),中的,幾個,請,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《程序開發(fā)中的幾個請不要相信》相關的同類信息!
  • 本頁收集關于程序開發(fā)中的幾個請不要相信的相關信息資訊供網民參考!
  • 推薦文章