设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> ASP技术 >> 安全加密 >> 正文
最新信息
·ASP防止同时登陆的问题
·ASP隐藏下载地址及防盗代码
·ASP,PHP,.NET伪造HTTP-REF…
·网站常用的屏蔽字符
·防止从外部提交数据的方法
·SHA256 加密的ASP实现
·网页脚本攻击防范全攻略
·识别常见Web应用安全漏洞 …
·include文件的利弊及其安全…
·改mdb为asp所带来的灾难
资料搜索
热点信息
·过滤特殊字符和处理数字
·网站常用的屏蔽字符
·ASP,PHP,.NET伪造HTTP-REF…
·改mdb为asp所带来的灾难
·堵住ASP漏洞
·杜绝入侵:八大法则防范AS…
·防止从外部提交数据的方法
·编写通用的asp防注入程序
·怎样给文件加密最安全(一种…
·ASP漏洞分析和解决方法(2)
推荐信息
·网页脚本攻击防范全攻略
·用MS script encode加密asp
·堵住ASP漏洞
·禁止站外提交表单
·彻底防止ACCESS数据库文件…
·Microsoft 脚本编码器Scri…
·Microsoft 脚本编码器Scri…
·Microsoft 脚本编码器Scri…
·Microsoft 脚本编码器Scri…
·两款比较典型的ASP 木马的…


Google
 
加密QueryString数据
〖编辑:Cloudy | 浏览:人次〗

Problem with Query String Method
Often time we use query string collection to retrieve an unique record from a table. Notice the following
piece of code -

Detail.asp?RecordID=200

Here we are passing a query string value called "RecordID" using the url. We then use the Query String
collection "RecordID" to get the actual number -

<%
Dim RecordID
RecordID = Request.QueryString("RecordID")
%>

The problem with the above method is that we are exposing "RecordID" to the public. Hence making easy to
hackers to just change the RecordID Query string to retrieve other values of the table.

Solution to the above problem

In order to solve the above problem, we will use two ASP pages and the ASP random number function to
scramble the passing query string value so that the real record number is not exposed to others.

On the first page we get a random number with the following code -

<%
Randomize timer
' Randomizing the timer function
rndNum = abs(int((rnd() * 3001)))
' To generate a prime based, non-negative random number..
rndNum = rndNum + 53
Session("rndNum") = rndNum
'We place the random number value in a session variable so that we can use it again in the next page %>

Now that we have our random number we will scramble our query string with it! Here is how -

<%
'Assuming you have a record set retrieved -
Display_Rs.movefirst
While not Display_Rs.Eof
Response.Write "<a href=detail.asp?RecordID="
Response.Write (Display_Rs("RecordID")*rndNum)
' Notice we are multiplying the actual record number with the random number to scramble the query 'string
Response.Write Display_Rs("RecordID") & "</a>"
Display_Rs.Movenext
Wend
%>

In the next page we will un-scramble the query string! Here is how -

<%
Dim RecordID
RecordID = request.querystring("RecordID")/Session("rndNum")
' We are dividing the record ID query string value with the same formula to un-scramble and pass the
actual record ID to the SQL statement
Session.abandon
' Releasing Session value for the next record
%>

That's it! Using the above method you can scramble a query string as much as you like. For example
multiply the random number with a very complex formula to generate an even more difficult integer number.
The key point here is you divide the number with the same formula yielding to the original value. This
technique is not full proof but much more difficult to break in that passing a regular query string value.


录入时间:2006-05-11 21:00:58 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号