关于ASP生成伪参数加密技巧
来源:omeweb.com 发布时间:2008-07-16 12:05:00
前两天在做一个站内版的企搜引擎,发现某些站点可以链接站点内容。。
奇怪之下看了看,原来是按照数据库ID的自动编号规律进行链接的~~
闲暇之余弄了下面这个东东,希望对大家在以后的编写ASP程序中有所帮助!
<%
''//生成指定位数的随机数字
''//也可以用Guidy写的iXuEr_Rnd_Str函数,自带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表单中提交的参数为例子针对Request.Form
需要传递的参数doAction原来的值是从数据库读取的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"))
下面大家可以自己加一点验证,如IsNumeric等!
然后我们来分解doAction的值
Dim LastID
doAction = Mid(doAction,11)
LastID = Mid(doAction,1,Len(doAction)-10)
如果大家对Mid函数熟悉的话,上面的内容很容易就猜到,简单吧?
下面是实际的例子:
原doAction要传递的ID在数据库里(字段类型为自动编号)的值为:34
说明:
Mid(doAction,11)里的11为你所生成随机字符位数+1
LastID = Mid(doAction,1,Len(doAction)-10)里的10为所指定生成的随机字符位数!
Dim LastID
doAction = 3614354944348151287527 — 经过伪装后的ID值(完全可以当数字来验证)
doAction = Mid(doAction,11)
LastID = Mid(doAction,1,Len(doAction)-10)
LastID = 34
我实验了一下,如果配合随机生成的字母和数字一起运用的话,那完全是可以伪成MD5类似的值!
只是条件就一个,要可以指定随机字符的位数!
哈哈,现在大家Response.Write输出LastID的值看看,是不是又是数据库里的ID啦?
这个方法可以运用到影片参数的加密,下载等.如做了政府的公文流转系统,还可以用到文件上面去!
针对Request.QueryString的也是同一个道理!照葫芦画瓢啦...
以上是本人在编写ASP程序中的一点点经验,不足之处请大家多多指正!
猜你喜欢
- 下面的代码是从kesion系统扒下的,确实不错,支持utf8格式。代码如下:'===========================
- 提起Apple,大部分人都会提起Apple的设计,除了Apple里拥有一批天才设计师外,还因为乔布斯对于设计有着苛刻的要求。所以在IT界,A
- 在asp里通过以下两个函数实现javascript里的escape函数和unescape函数
- AddHeaderAddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题。它并不替代现有的同名标题
- 如何利用Image Data Type从数据库中读取图片,并在主页中显示图形?然后,写如下代码:< % @&nbs
- 一位资深的设计师曾经向我抱怨,说老板不仅让他做“设计”工作,还让他做“制作”工作,真是很烦。言下之意,“制作”还要一个资深设计师亲自上阵,未
- 到现在为止,你只学习了如何根据特定的条件从表中取出一条或多条记录。但是,假如你想对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的
- 本文回答了如下问题:“MySQL服务器有多稳定?”,以及“在本项目中我能依靠My
- 可能出现的原因有:◆源数据库或目标数据库为 SQL Server 6.5 版。连接到 Access 项目的当前 SQL 服务器和要将数据库转
- CSS中最常用的布局类属性,一个是Float(CSS浮动属性Float详解),另一个就是CSS定位属性Position。1. positio
- 支持实时监控sliderbar的数据,允许有callback回调的函数,有示例1、可自定样式SetStyle() 2、带有onSroll功能
- 开门见山,直接以例子介绍: 代码如下:CREATE TABLE [dbo].[course]( [id] [int] NULL,
- 这是网站制作很流行的下拉列表两级连动的代码,也是很多人使用的代码。下面,先来看这段代码:<%dim countset&nbs
- 方法不是主流的。有一组数据,大概10万个左右,每一单位的值不会大于30000,要求按照由大到小的顺序不重复输出。参考无忧cosin的方法后(
- 前端技术层(图片有点偏激,仅供参考)Javascript和DOM关系很暧昧,弄不明白!CSS和HTML
- 原则:1. 我们测试的是产品可用性,不是使用者的个人能力2. 尽量不要打断用户的操作3. &
- 在我们的网站建设中,为网站打造一个契合网站主题的个性化标志则是必需的,这直接关系到能否成功地塑造网站的品牌。这从某些角度看仍在网站推广的范畴
- 一、密码式给数据库起一个随机复杂的名称,避免被猜到被下载,这种方式在以前很流行,因为大家都对自己的代码很有自信。但随着错误提示对数据库地址的
- 更换域名,估计是很多站长都很头疼的事情。通常大家的做法就是把老的域名通过IIS设置做301跳转到新的域名。对于只有一个虚拟空间的站长来说,换
- 请问如何从ASP连接到Oracle Server?可用下面的代码进行连接: <%@ Lan