国产成人a-国产成人99久久亚洲综合精品-国产成人99精品免费视频麻豆-国产成人99精品免-国产成人91一区二区三区-国产成人91亚洲精品无码观看

目錄
目錄X

SiteFactoryCMS1.1版新增功能快遞:URL地址傳遞參數(shù)的數(shù)據(jù)類型檢查

  程序在什么環(huán)境下最安全?這是開(kāi)發(fā)組從最初設(shè)計(jì)SiteFactory時(shí)就一直在討論和研究的問(wèn)題。在SiteFactory 1.0版的開(kāi)發(fā)中,我們用了很多措施來(lái)保證系統(tǒng)的相對(duì)安全,具體可以查看想博客文章和官網(wǎng)介紹。今天要給大家介紹的SiteFactory? CMS 1.1版中新安全措施中一種——地址參數(shù)檢查措施。

什么是地址參數(shù)

  比如我們?cè)L問(wèn)www.tuopijixie.com.cn/item/88.aspx,因?yàn)槲覀兿到y(tǒng)做了UrlRewrite,實(shí)際訪問(wèn)的地址是www.tuopijixie.com.cn/item.aspx?id=88 那么“Id=88”就叫做地址參數(shù)。

地址傳遞參數(shù)做類型檢查有什么好處

  以上面的地址為例子,“88”通常用來(lái)作為查詢條件的,如果處理不好,很容易造成萬(wàn)惡的SQL注入漏洞。當(dāng)然單單就“ID=88”來(lái)說(shuō),堵住漏洞的方法有很多種,感覺(jué)最好的辦法就是限制用戶輸入。當(dāng)我們知道這個(gè)頁(yè)面只接受一個(gè)ID參數(shù),并且是數(shù)字類型的話,那么我們?cè)谧層脩敉ㄟ^(guò)url傳遞Id時(shí),這個(gè)參數(shù)就只能是數(shù)字,是其他類型就給出錯(cuò)誤提示,拒絕其進(jìn)一步的訪問(wèn)。

下面是出錯(cuò)演示:

  比如,當(dāng)我們?cè)L問(wèn) www.tuopijixie.com.cn/item.aspx?id=88時(shí),則一切正常。當(dāng)我們?cè)L問(wèn)www.tuopijixie.com.cn/item.aspx?id=d’d 則會(huì)出現(xiàn)如下提示:



 其他錯(cuò)誤提示還有 參數(shù)太多,缺少參數(shù),參數(shù)錯(cuò)誤等提示。

  這次在SiteFactory 1.1版中已經(jīng)默認(rèn)開(kāi)啟了這個(gè)驗(yàn)證。我們對(duì)于所有前臺(tái)的頁(yè)面(管理后臺(tái)由于站長(zhǎng)可以改目錄使別人猜不到而沒(méi)有做判斷)也都在Config/QueryStrings.config中進(jìn)行了配置。

如何修改QueryStrings.config?

  用Editplus或者其他文本編輯器打開(kāi)這個(gè)文件(Config/QueryStrings.config),首先看到第一行

<queryStrings mode="OnlyList">

  Mode這里作用是設(shè)置參數(shù)檢查的方式。OnlyList的意思是只檢查QueryStrings.config中列出的文件。我們也可以設(shè)為All,這樣就是所有請(qǐng)求網(wǎng)站的aspx文件都會(huì)被檢查。如果這些文件沒(méi)有被配置在QueryStrings.config中,那么就說(shuō)明這些文件是不允許帶任何參數(shù)的。

Page節(jié)的說(shuō)明

<page url="~/PayOnline/PayResult99bill.aspx" abortOnError="false">

  在page節(jié)中有兩個(gè)參數(shù),第一個(gè)參數(shù) url就是要判斷的頁(yè)面,要注意這里的地址填寫(xiě),填寫(xiě)不對(duì)就出錯(cuò)了。第二個(gè)參數(shù)abortOnError 是否忽略錯(cuò)誤。就是說(shuō)當(dāng)有人傳遞url地址時(shí),地址附加的參數(shù)和page中配置的不一樣,如果把a(bǔ)bortOnError設(shè)置為false,就是不進(jìn)行錯(cuò)誤提示,允許用戶繼續(xù)操作。如果page中沒(méi)有abortOnError或者把a(bǔ)bortOnError設(shè)置為了true,那么就會(huì)出現(xiàn)錯(cuò)誤提示,并終止操作。

什么時(shí)間下用abortOnError設(shè)為true,什么時(shí)間下設(shè)為false?

  當(dāng)我們已知這個(gè)頁(yè)面能夠接受多少參數(shù),每個(gè)參數(shù)類型也都清楚,那么為了網(wǎng)站安全,建議盡量設(shè)置為true。不能預(yù)計(jì)參數(shù)或者懶惰不想配置每個(gè)頁(yè)面參數(shù)的話,就設(shè)置為false。比如SiteFactory1.1中,這個(gè)page節(jié)<page url="~/PayOnline/PayResult99bill.aspx" abortOnError="false">我們不能預(yù)知在線支付接口那里會(huì)返回多少個(gè)參數(shù),我們就設(shè)置為false。,但是我們?cè)趐age下設(shè)置的頁(yè)面參數(shù),仍然會(huì)進(jìn)行檢查。
注意page ,abortOnError是區(qū)分大小寫(xiě)的,大家在修改或者添加配置時(shí)不要寫(xiě)錯(cuò)了。

page節(jié)下的param節(jié)

<param name="Id" datatype="Int" optional="true" />

  在param節(jié)中,name就是參數(shù)名,實(shí)際地址中是什么就要寫(xiě)什么,name值不區(qū)分大小寫(xiě)。datatype 代表的是這個(gè)參數(shù)的數(shù)據(jù)類型,datatype的值是區(qū)分大小寫(xiě)的。Int表示只接受數(shù)字類型的。Datatype還有String,Bool等共三種類型。如果我們把id的datatype改成了String 類型,那么我們最初訪問(wèn)www.tuopijixie.com.cn/item.aspx?id=d’d就不會(huì)出錯(cuò)了。

  optional參數(shù)是代表這個(gè)參數(shù)是否是必須的。當(dāng)我們?cè)趐aram中沒(méi)有加optional或者optional=”true”時(shí),這就代表是這個(gè)參數(shù)是必須的。optional=”false”就代表是可選的。當(dāng)我們把參數(shù)設(shè)置為optional=”true”時(shí),如果我們?cè)谠Lwww.tuopijixie.com.cn/item.aspx時(shí)沒(méi)有帶參數(shù),就會(huì)提示“缺少參數(shù)錯(cuò)誤”。如果設(shè)置為optional=”false”,那么就不會(huì)提示這個(gè)錯(cuò)誤。

  另外對(duì)于param,當(dāng)數(shù)據(jù)類型是String時(shí),我們還可以設(shè)定參數(shù)的長(zhǎng)度。類似的情況如下:    

<param name="Pay" datatype="String" optional="true" length="3" />


  這時(shí)的Pay只能接受3個(gè)字符長(zhǎng)度的參數(shù),當(dāng)我們傳遞給Pay=aabc時(shí),就會(huì)提示出錯(cuò)。而傳遞給Pay=aab時(shí),就沒(méi)有問(wèn)題。

如果修改錯(cuò)誤提示為其他文字

  有些用戶可能對(duì)于 參數(shù)錯(cuò)誤,參數(shù)太多,缺少參數(shù)等錯(cuò)誤提示,感覺(jué)不夠個(gè)性化或者想要改成英文的。可以通過(guò)修改App_GlobalResources文件夾下的ErrorMessage.resx文件。App_GlobalResources是存放資源的文件夾。我們把很多錯(cuò)誤提示都放到了ErrorMessage.resx中,下個(gè)版本我們可能會(huì)提供多語(yǔ)言支持。這個(gè)文件可以用Editplus或者DreamWeave進(jìn)行打開(kāi),找到PageParamLessThen、PageParamMoreThen、PageParamNotContains、PageParamUnequal等幾個(gè)參數(shù),修改value中的值就可以了。如果想要在value中嵌入html碼,需要首先進(jìn)行轉(zhuǎn)義,比如把“<”變成“&lt;”,把“>”變成“&gt;”。

1 <data name="PageParamLessThen" xml:space="preserve">
2     <value><li>缺少參數(shù)!</li></value>
3  </data>

  當(dāng)你的網(wǎng)站出現(xiàn)參數(shù)錯(cuò)誤一類的提示時(shí),就要檢查一下Config/QueryStrings.config中,看配置是否和實(shí)際的一樣了。

  任何疑問(wèn)或者建議,請(qǐng)發(fā)郵件到powereasydeveloper@qq.com

 

【打印正文】 發(fā)布時(shí)間:2008-06-04 15:50:30 瀏覽次數(shù): 作者:bbsh 來(lái)源:本站原創(chuàng)
×

用戶登錄

主站蜘蛛池模板: 国产v欧美v日韩在线观看| 日本无码一二三区别免费| 日本高清视频免费在线观看| 乱欧美式忌禁仑片国产精品| 精品人无码一区二区三区| 国产福利在线网址成人| md传媒新剧国产在线观看| 在线无码天堂视频| 亚洲精品国产第一区第二区| 日本tv欧美tv天堂| 久久无码人妻精品一区二区三区| 精品人妻一区二区三区小视频| 国产成人无码精品一区| a欧美亚洲另类制服丝袜| 综合久久一区二区三区| 性啪啪chinese东北女人| 欧洲永久精品大片ww免费网站| 久久久久精品无码专区| 国产三级精品三级在线专1| 顶级少妇白浆视频| 2021国产精品最新在线| 四虎永久在线精品免费一区二区 | 久久精品国1国二国三在| 国产女主播一二三区丝袜| 成人伊人青草久久综合网| 伊人亚洲影院| 日本在线看| 精品国产三级av在线| 国产精品成人小电影在线观| 99日韩一区二区三区精品| 婷婷综合导航| 麻豆16岁女神被抓| 国产精品真实对白精彩久久| av五区老熟女| 西西人体大胆视频无码| 久久久人妻一区精| 国产精品有码专区囯产精品久久精品| 91探花在线| 日韩最新中文字幕无码人妻| 久久久久久曰本av免费免费| 国产福利视频在线观看福利|