注册 登录
编程论坛 ASP技术论坛

请教关于防参数的问题

都市打工者 发布于 2007-08-31 14:29, 1280 次点击
大家好,我现在遇到一个问题,就是参数
http://192.168.1.9/aa/bb/use/tick.asp?action=tickcz&sh_id=82
上面是个删除记录的
但是参数sh_id我可以在地址栏直接输入。这样有人恶意会删除其他信息的。能有什么方法限制改上面的参数啊?谢谢
20 回复
#2
天涯听雨2007-08-31 19:22
能删除页不需要任何登陆就能操作吗?
#3
天涯听雨2007-08-31 19:23
或者说在删除时,都是应该加上用户相关登陆相同时才能进行删除
#4
都市打工者2007-09-03 10:12

是的啊,我是做二手房程序,所有出组信息都在一个表里,登陆信息是根据用户名登陆的,所以登陆到统一的后台,调用该用户的出租信息,但是这样的话就可能在地址揽直接输入就能删除其他的了,呵呵

#5
阳光白雪2007-09-03 11:23
限制只循序删除用户自己发布的信息,不能删别人的不就可以了
#6
ayue2222007-09-03 12:36

限制参数的传递只能通过页面点击传递就好了,直接从地址栏输入ID拒绝访问
Dim url1,url2

url1=Cstr(Request.ServerVariables("HTTP_REFERER"))
url2=Cstr(Request.ServerVariables("SERVER_NAME"))
If mid(url1,8,len(url2))<>url2 Then
Response.redirect "error.asp?ErrCodes=<li>禁止非法访问!!!你的IP (<font color=blue>"&Request.ServerVariables("HTTP_REFERER")&"</font>) 已经记录!"
Response.End
End If

#7
都市打工者2007-09-16 18:47
还没有解决问题了,呵呵
#8
multiple19022007-09-16 18:50
以下是引用都市打工者在2007-9-16 18:47:24的发言:
还没有解决问题了,呵呵

执行删除操作的时候检查是否有这个权限

#9
都市打工者2007-09-16 18:51
我的问题是这样的啊,用户登陆后我用了session保存了用户登陆 信息,这样用户就可以进入自己后台删除自己房产信息,但是这样他可以直接在地址栏输入其他房产信息的id就能把其他人的数据删除了。怎么解决啊?谢谢

[此贴子已经被作者于2007-9-16 18:53:01编辑过]


#10
multiple19022007-09-16 18:53
以下是引用都市打工者在2007-9-16 18:51:09的发言:
我的问题是这样的啊,用户登陆后我用了session保存了用户登陆 信息,这样用户就可以进入自己后台删除自己房产信息,但是这样他可以直接在地址栏输入其他房产信息的id就能把其他人的数据删除了。怎么解决啊?谢谢

先select出这条房产信息,看是不是这个人的。

#11
都市打工者2007-09-16 18:57

我一套后台完全是根据各个用户信息登陆的。这样他们就可以进入一个统一的后台,但是所有房产信息调用全是个人自己的,但是有的人登陆后直接输入执行删除程序,根据房产信息id就可以直接删除其他人信息了,呵呵

#12
都市打工者2007-09-16 19:09
id=Trim(Request.QueryString("id"))
set rs1 = Server.CreateObject("adodb.recordset")
conn.execute "select user_id from cs where sh_id="&id
if rs1("user_id")<>session("passname") then (用户信息)
response.Write"无全删除"
response.End()
end if
还可以啊?

[此贴子已经被作者于2007-9-16 19:10:16编辑过]

#13
madpbpl2007-09-16 19:11

楼主可以把用户id先放入房产信息表,删除时判断用户id,如果操作的id和用户id相同则可以操作,否则不允许操作。

#14
都市打工者2007-09-16 19:18
对的啊, 我就是这样操作的啊,看上面的程序怎么样啊?
#15
madpbpl2007-09-16 19:42

方法就是这样,可以具体操作一下试试。

#16
linyesu2007-09-17 16:37


页头判断 

if session("admin")<>"adminname" then
response.redriect(" http://192.168.1.9 ")
end if

#17
都市打工者2007-09-29 17:26
问题已经研究解决了,谢谢大家
#18
wcwtitxu2007-10-06 06:54

"delete from TAB where id="&request("id")&" and 发布者='" & user & "'"

where 条件加上用户判断,当然这里很可能需要用到多表链接

#19
multiple19022007-10-06 07:05
以下是引用wcwtitxu在2007-10-6 6:54:56的发言:

"delete from TAB where id="&request("id")&" and 发布者='" & user & "'"

where 条件加上用户判断,当然这里很可能需要用到多表链接

admin_del.asp?id=5%10%13select & from TAB where 1=1

%10%13
是CrLf换行符

那是不是会导致注入?

#20
wcwtitxu2007-10-06 07:57
呵呵,楼上说的是.
给 CLng(request("ID")) 好了,注入就让它报错去,如何
#21
月夜2007-10-06 12:49
唉 设置session
if session("users")="" or session("users")<>"管理员" then
response.redirect "url一个地址"
1