asp问题,很简单~程序员们进来看看

来源:百度知道 编辑:UC知道 时间:2024/09/21 08:55:51
<%if request.Cookies("shopxp")("username")="" then
response.Write "<script language='javascript'>alert('网络超时或您还没有登陆!');window.location.href='login.asp';</script>"
response.End
Else
end if
dim c199userid
c199userid=request.QueryString("userid")
if not isnumeric(c199userid) then
response.write"<script>alert(""非法访问!"");location.href=""../index.asp"";</script>"
response.end
end if
if request("c199userid")=request.Cookies("shopxp")("userid") then
response.Write ""
response.End

end if%>

大家看看对吗?当用户编辑这条信息时~让程序自动判断是否是该用户名管理的,
程序检测c199userid字段中是否含有("userid")
登陆帐号时userid值已经纪录

COOKIE是可以通过客户端伪造的,所以不建议使用COOKIE做身份验证,除非COOKIE字串是高强度加密的,否则尽量使用session来保存用户会话身份。

你的程序在身份验证上没什么问题,只是看起来很不舒服,没有很好的逻辑性。但程序整体的安全性不好,cookie可以伪造,userid可以伪造,总体上也就是失去了身份验证的意义。

如果你是在判断用户是否有权限来编辑这条信息,
这条信息记录里应该有一个userId类似的字段
你完全可以在sql上作处理
sql = "SELECT * FROM tablename WHERE id = "&request.QueryString("id")&" AND userId = " & request.Cookies("shopxp")("userid")
if (rs.eof and rs.bof) then
//没权限了。。。
end if
如果有记录,而且有权限,则取出来。。如果没权限是取不出的。。。

不知道是不是这样,呵呵

总觉得有点不对劲.