当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP生成伪参数程序设计技巧

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

ASP生成伪参数程序设计技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 50 ::
收藏到网摘: n/a

电影系统经常用ASP伪参数,可以防范通过id采集数据。 前两天在做一个站内版的企搜引擎,发现某些站点可以链接站点内容。。
奇怪之下看了看,原来是按照数据库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程序中的一点点经验,不足之处请大家多多指正!