新手求救!关于ASP地址中参数传递的安全性问题。

ShunYea 2008-01-12 11:16:16
在一般的列表信息列表里面,点击某一条信息,然后跳转到详细的内容页,一般是靠传递参数来实现,比如aaa.asp?id=3等等,但是这个时候把3改为5一般就会看到id=5的那条信息。

请问,能否让上述的修改不能实现?改了提示出错或者直接没有反应?可以考虑使用用户登录或者其他的条件来实现,但最好就是不使用验证用户帐号信息,直接改就不让改的效果。

有实现的方法,请高手给与示例提示,十分的感谢!
...全文
186 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
3D先生 2008-01-18
  • 打赏
  • 举报
回复
通过session传值,或者form method="post"
fimmuhu 2008-01-18
  • 打赏
  • 举报
回复
1.不是什么非常重要的信息为什么不能看呢?
2.
用10#和12#的方法,禁止外部提交。

Sub illegal_post()
Dim server_v1
Dim server_v2
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
response.write "<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
response.write "<tr><td style='font:9pt Verdana'>"
response.write "o(∩_∩)o...请不要从外部提交数据噢!<br>"
response.write "          <font color=red>FoxStudio(SMU)</font>提供技术支持."
response.write "</td></tr></table></center>"
response.end
end if
End Sub

3.自己写函数对URL参数进行编码,然后再接收端解码。(算是自己写加密函数咯)
cup_505 2008-01-18
  • 打赏
  • 举报
回复
ip=request.ServerVariables("HTTP_Referer")
if ip="" then
response.write("非法")
end if

Request.ServerVariables("HTTP_REFERER") 用来获取(从哪个页面转到当前页面的) & 路径 ,如果是从地址栏里输入的话就没有值,提示出错,当你修改地址栏里的参数时就可以提示出错了
ShunYea 2008-01-15
  • 打赏
  • 举报
回复
首先感谢大家的热心帮助啊!

回三楼,现在就是假设我是以用户1的身份登录,而且信息1和3是我发的,2和4是用户2发的,我在编辑或查看我自己的id为1或3的信息时,一般是跳转到aaa.asp?id=1或3的页面,这时如果我要防止我修改用户2的消息,即我改id为2或4就提示出错,但是现在如果我自己修改的是id=1的页面,我改为3能否也不允许呢?

回五楼,我这个不是盗链的问题吧?我也不懂了……

四楼和九楼,非常感谢你们的方法,我再思考一下看看。

十楼的没看懂,好像不能用在这里吧……
cup_505 2008-01-14
  • 打赏
  • 举报
回复
ip=request.ServerVariables("HTTP_Referer")
if ip="" then
response.write("非法")
end if
stayalive 2008-01-13
  • 打赏
  • 举报
回复
aaa.asp?id=3&sn=**************
简单点,把id的值用md5一下得到sn的值,然后在aaa.asp的时候判断
md5(id)是否等于sn
等于的话就显示,不等于就.....
只是一个简单的思路!
就了防止猜到
你可以这样
sn=md5("admin888"&id)
jiaxueq 2008-01-13
  • 打赏
  • 举报
回复
随机生成复杂的字符串。参考56.COM
TeEvil 2008-01-13
  • 打赏
  • 举报
回复
6楼的是对的!
什么都不能 2008-01-13
  • 打赏
  • 举报
回复
可以加密,自己写个加密安全函数加密你的数据,用的时候解密
dandelionl 2008-01-13
  • 打赏
  • 举报
回复
你看看防止盗链的思路,学会了发到帖子了。
chencncj 2008-01-13
  • 打赏
  • 举报
回复
你可以在转入这个页面前的前一个页面加上一个变量 在要转入的那个页面上也接收那个新加的变量 那个变量数值的设计 你可以根据id值来变化
你知道它跟id的关系 别人可不知道咯
像wenzhang.asp?id=2&bid=10 你可以定义bid=id*5(只有你知道咯)
别人输入wenzhang.asp?id=3&bid=9 是不存在这个地址的
maodeha 2008-01-13
  • 打赏
  • 举报
回复
这样吧你再加一个字段,如:xuanxian
然后链接数据库后先读取刚加个那个字段,如果那字段值等于0不让访客浏览 否则可以浏览。
<%
if rs("xuanxian")=0 then
Response.Write("您没有权限")
Else
%>

否则正常浏览网页

<%
end if
%>
ShunYea 2008-01-13
  • 打赏
  • 举报
回复
但是一般的信息显示列表不使用这样传递参数好像不行啊,楼上有什么高招吗?
cloudgamer 2008-01-12
  • 打赏
  • 举报
回复
如果是公开的信息为什么不让看呢

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧