ASP生成偽參數(shù)程序設(shè)計(jì)技巧
更新時(shí)間:2008年01月05日 12:28:42 作者:
電影系統(tǒng)經(jīng)常用ASP偽參數(shù),可以防范通過id采集數(shù)據(jù)。
前兩天在做一個(gè)站內(nèi)版的企搜引擎,發(fā)現(xiàn)某些站點(diǎn)可以鏈接站點(diǎn)內(nèi)容。。
奇怪之下看了看,原來是按照數(shù)據(jù)庫ID的自動(dòng)編號(hào)規(guī)律進(jìn)行鏈接的~~
閑暇之余弄了下面這個(gè)東東,希望對(duì)大家在以后的編寫ASP程序中有所幫助!
<%
''//生成指定位數(shù)的隨機(jī)數(shù)字
''//也可以用Guidy寫的iXuEr_Rnd_Str函數(shù),自帶15種樣式,可以偽MD5啦!!
Function rndStr(strLong)
Dim tempStr
Randomize
Do While Len(rndStr) < strLong
tempStr=CStr(Chr((57-48)*rnd+48))
rndStr=rndStr&tempStr
Loop
rndStr=rndStr
End Function
%>
下面以Form表單中提交的參數(shù)為例子針對(duì)Request.Form,需要傳遞的參數(shù)doAction原來的值是從數(shù)據(jù)庫讀取的ID
<form name=iform action="ABC.asp" method="post">
<input name=doAction type="hidden" value="<%=rndStr(10)%><%=Rs("ID")%><%=rndStr(10)%>">
</form>
注意:
上面的doAction的值有了改變,每刷新一次頁面得到的值都不一樣~~
下面是ABC.asp頁面
首先取得doAction的值
doAction = Trim(Request.Form("doAction"))
下面大家可以自己加一點(diǎn)驗(yàn)證,如IsNumeric等!
然后我們來分解doAction的值
Dim LastID
doAction = Mid(doAction,11)
LastID = Mid(doAction,1,Len(doAction)-10)
如果大家對(duì)Mid函數(shù)熟悉的話,上面的內(nèi)容很容易就猜到,簡單吧?
下面是實(shí)際的例子:
原doAction要傳遞的ID在數(shù)據(jù)庫里(字段類型為自動(dòng)編號(hào))的值為:34
說明:
Mid(doAction,11)里的11為你所生成隨機(jī)字符位數(shù)+1
LastID = Mid(doAction,1,Len(doAction)-10)里的10為所指定生成的隨機(jī)字符位數(shù)!
Dim LastID
doAction = 3614354944348151287527 — 經(jīng)過偽裝后的ID值(完全可以當(dāng)數(shù)字來驗(yàn)證)
doAction = Mid(doAction,11)
LastID = Mid(doAction,1,Len(doAction)-10)
LastID = 34
我實(shí)驗(yàn)了一下,如果配合隨機(jī)生成的字母和數(shù)字一起運(yùn)用的話,那完全是可以偽成MD5類似的值!
只是條件就一個(gè),要可以指定隨機(jī)字符的位數(shù)!
哈哈,現(xiàn)在大家Response.Write輸出LastID的值看看,是不是又是數(shù)據(jù)庫里的ID啦?
這個(gè)方法可以運(yùn)用到影片參數(shù)的加密,下載等.如做了政府的公文流轉(zhuǎn)系統(tǒng),還可以用到文件上面去!
針對(duì)Request.QueryString的也是同一個(gè)道理!照葫蘆畫瓢啦...
以上是本人在編寫ASP程序中的一點(diǎn)點(diǎn)經(jīng)驗(yàn),不足之處請(qǐng)大家多多指正!
奇怪之下看了看,原來是按照數(shù)據(jù)庫ID的自動(dòng)編號(hào)規(guī)律進(jìn)行鏈接的~~
閑暇之余弄了下面這個(gè)東東,希望對(duì)大家在以后的編寫ASP程序中有所幫助!
<%
''//生成指定位數(shù)的隨機(jī)數(shù)字
''//也可以用Guidy寫的iXuEr_Rnd_Str函數(shù),自帶15種樣式,可以偽MD5啦!!
Function rndStr(strLong)
Dim tempStr
Randomize
Do While Len(rndStr) < strLong
tempStr=CStr(Chr((57-48)*rnd+48))
rndStr=rndStr&tempStr
Loop
rndStr=rndStr
End Function
%>
下面以Form表單中提交的參數(shù)為例子針對(duì)Request.Form,需要傳遞的參數(shù)doAction原來的值是從數(shù)據(jù)庫讀取的ID
<form name=iform action="ABC.asp" method="post">
<input name=doAction type="hidden" value="<%=rndStr(10)%><%=Rs("ID")%><%=rndStr(10)%>">
</form>
注意:
上面的doAction的值有了改變,每刷新一次頁面得到的值都不一樣~~
下面是ABC.asp頁面
首先取得doAction的值
doAction = Trim(Request.Form("doAction"))
下面大家可以自己加一點(diǎn)驗(yàn)證,如IsNumeric等!
然后我們來分解doAction的值
Dim LastID
doAction = Mid(doAction,11)
LastID = Mid(doAction,1,Len(doAction)-10)
如果大家對(duì)Mid函數(shù)熟悉的話,上面的內(nèi)容很容易就猜到,簡單吧?
下面是實(shí)際的例子:
原doAction要傳遞的ID在數(shù)據(jù)庫里(字段類型為自動(dòng)編號(hào))的值為:34
說明:
Mid(doAction,11)里的11為你所生成隨機(jī)字符位數(shù)+1
LastID = Mid(doAction,1,Len(doAction)-10)里的10為所指定生成的隨機(jī)字符位數(shù)!
Dim LastID
doAction = 3614354944348151287527 — 經(jīng)過偽裝后的ID值(完全可以當(dāng)數(shù)字來驗(yàn)證)
doAction = Mid(doAction,11)
LastID = Mid(doAction,1,Len(doAction)-10)
LastID = 34
我實(shí)驗(yàn)了一下,如果配合隨機(jī)生成的字母和數(shù)字一起運(yùn)用的話,那完全是可以偽成MD5類似的值!
只是條件就一個(gè),要可以指定隨機(jī)字符的位數(shù)!
哈哈,現(xiàn)在大家Response.Write輸出LastID的值看看,是不是又是數(shù)據(jù)庫里的ID啦?
這個(gè)方法可以運(yùn)用到影片參數(shù)的加密,下載等.如做了政府的公文流轉(zhuǎn)系統(tǒng),還可以用到文件上面去!
針對(duì)Request.QueryString的也是同一個(gè)道理!照葫蘆畫瓢啦...
以上是本人在編寫ASP程序中的一點(diǎn)點(diǎn)經(jīng)驗(yàn),不足之處請(qǐng)大家多多指正!
相關(guān)文章
asp 下產(chǎn)生任意位數(shù)隨機(jī)密碼的代碼
asp 下產(chǎn)生任意位數(shù)隨機(jī)密碼的代碼...2007-08-08
用ASP實(shí)現(xiàn)對(duì)ORACLE數(shù)據(jù)庫的操作
用ASP實(shí)現(xiàn)對(duì)ORACLE數(shù)據(jù)庫的操作...2007-03-03
ASP中字符與數(shù)字內(nèi)置操作函數(shù)整理
在ASP中,預(yù)定義了許多函數(shù),可以幫助我們簡化代碼、提高開發(fā)效率,本文將介紹一些常用的ASP字符與數(shù)字內(nèi)置操作函數(shù),以便開發(fā)人員更加方便、快速地創(chuàng)建 Web 應(yīng)用程序,2023-12-12
asp動(dòng)態(tài)級(jí)聯(lián)菜單代碼
asp動(dòng)態(tài)級(jí)聯(lián)菜單代碼...2007-03-03
asp實(shí)現(xiàn)限制一個(gè)ip只能訪問一次的方法
這篇文章主要介紹了asp實(shí)現(xiàn)限制一個(gè)ip只能訪問一次的方法,感興趣的小伙伴們可以參考一下2015-10-10
ASP讀取Request.QueryString編碼的函數(shù)代碼
ASP讀取Request.QueryString編碼的函數(shù)代碼,學(xué)習(xí)asp的朋友可以參考下。2011-09-09
重置TSYS系統(tǒng)中的所有"生成的文件"成"未生成文件"
重置TSYS系統(tǒng)中的所有"生成的文件"成"未生成文件"...2007-01-01
ASP javascript Application對(duì)象的Contents和StaticObjects做Cache的一些
ASP javascript: Application對(duì)象的Contents和StaticObjects做Cache的一些結(jié)論。 ASP封裝Cache對(duì)象,一般都是基于Application的,2008-05-05

