欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

程序開(kāi)發(fā)中的幾個(gè)請(qǐng)不要相信

 更新時(shí)間:2009年04月15日 22:03:35   作者:  
雖不算什么高深的東西,但至少也算一點(diǎn)點(diǎn)小經(jīng)驗(yàn),分享分享吧,如果您是高手,而且您還有點(diǎn)時(shí)間,那么請(qǐng)你耐心看完整篇文章,然后再幫忙指點(diǎn)指點(diǎn),留下您的經(jīng)驗(yàn),我也好學(xué)習(xí)學(xué)習(xí)。
鏈接中的例子是一些腳本攻擊相關(guān)的內(nèi)容,有時(shí)間的朋友可以點(diǎn)開(kāi)看看。

1.不要相信Request.QueryString:

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

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

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

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

這個(gè)我一時(shí)也沒(méi)想到好的驗(yàn)證方法,暫時(shí)也沒(méi)有特殊的需求說(shuō)必須驗(yàn)證。
4.不要相信客戶(hù)端驗(yàn)證:

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

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

以前QQ空間里可以通過(guò)這個(gè)方法免費(fèi)使用黃鉆模板,不知道現(xiàn)在還有沒(méi)有。這個(gè)就沒(méi)有什么好的解決辦法,只能后臺(tái)再驗(yàn)證一次。
5.不要相信編輯器:

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

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

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

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

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

相關(guān)文章

  • CLion中編譯ROS工程的配置詳細(xì)教程

    CLion中編譯ROS工程的配置詳細(xì)教程

    這篇文章主要介紹了CLion中編譯ROS工程的配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳解Visual Studio使用Git忽略不想上傳到遠(yuǎn)程倉(cāng)庫(kù)的文件

    詳解Visual Studio使用Git忽略不想上傳到遠(yuǎn)程倉(cāng)庫(kù)的文件

    這篇文章主要介紹了Visual Studio使用Git忽略不想上傳到遠(yuǎn)程倉(cāng)庫(kù)的文件,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 怎樣寫(xiě)commit?log記錄及如何提交有哪些約定

    怎樣寫(xiě)commit?log記錄及如何提交有哪些約定

    這篇文章主要為大家介紹了怎樣寫(xiě)commit?log記錄以及及如何提交有哪些約定,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Jenkins集成Gitlab實(shí)現(xiàn)自動(dòng)化部署的全過(guò)程記錄

    Jenkins集成Gitlab實(shí)現(xiàn)自動(dòng)化部署的全過(guò)程記錄

    因?yàn)橹行凸静豢赡芘渲眠\(yùn)維開(kāi)發(fā),而開(kāi)發(fā)只管開(kāi)發(fā)的,所以運(yùn)維只能是通過(guò)使用開(kāi)源工具的方式來(lái)搭建自動(dòng)化部署系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于Jenkins集成Gitlab實(shí)現(xiàn)自動(dòng)化部署的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 分享幾道和「滑動(dòng)窗口」有關(guān)的算法面試題

    分享幾道和「滑動(dòng)窗口」有關(guān)的算法面試題

    本文是小編和大家分享的幾道和「滑動(dòng)窗口」有關(guān)的算法面試題,需要的朋友可以參考下
    2019-08-08
  • IDEA2019.3在Plugins中搜索不到translation的解決

    IDEA2019.3在Plugins中搜索不到translation的解決

    這篇文章主要介紹了IDEA2019.3在Plugins中搜索不到translation的解決,文中通過(guò)圖文的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • git之遠(yuǎn)程代碼回滾master問(wèn)題

    git之遠(yuǎn)程代碼回滾master問(wèn)題

    這篇文章主要介紹了git之遠(yuǎn)程代碼回滾master問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Mac如何給應(yīng)用單獨(dú)設(shè)置語(yǔ)言

    Mac如何給應(yīng)用單獨(dú)設(shè)置語(yǔ)言

    這篇文章主要介紹了Mac如何給應(yīng)用單獨(dú)設(shè)置語(yǔ)言,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Git pull(拉取)及push(上傳)相關(guān)命令介紹

    Git pull(拉取)及push(上傳)相關(guān)命令介紹

    這篇文章主要介紹了Git pull(拉取),push(上傳)相關(guān)命令,git是一個(gè)非常好用的分布式版本管理工具,Git是去中心化,每一個(gè)分支都是一個(gè)中心,并且支持本地倉(cāng)庫(kù)存儲(chǔ),像如今很多大公司都用git做版本控制。有興趣的話(huà)來(lái)學(xué)習(xí)一下
    2020-07-07
  • 知識(shí)蒸餾聯(lián)邦學(xué)習(xí)的個(gè)性化技術(shù)綜述

    知識(shí)蒸餾聯(lián)邦學(xué)習(xí)的個(gè)性化技術(shù)綜述

    這篇文章主要為大家介紹了知識(shí)蒸餾聯(lián)邦學(xué)習(xí)的個(gè)性化技術(shù)綜述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評(píng)論