一个不懂正不正确的问题,送分!

hkle 2002-07-25 09:52:52
常用的登录系统,是通过提取数据库中的用户ID和密码,经过验证通过再用重定向函数链接到下个页面(通常是包含有管理功能的页面)!这样就有一个问题,如果我一开始就知道下个页面的绝对地址,那么我也可以通过直接输入这个地址打开这个管理页面,就直接跳开了用户验证这个过程,这样就显得很不安全!不懂这样提问是不是正确?是不是在每个页面都要加上验证的代码?请各位前辈多指教!
...全文
25 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgz01 2002-07-31
根据SESSION,不对就给他一个错误页面。

*****
打工好辛苦
*****
钞票好难赚
*****
编程好伤神
*****
光阴好易混
*****
回复
hkle 2002-07-30
受益匪浅!多谢各位高手的指点
回复
deavey 2002-07-29

<%
'function entercheck(str)
dim dist
dim i
dist=""
for i = 1 to len(str)
if mid(str,i,1)<>"'" and mid(str,i,1)<>"%" and ucase(mid(str,i,6))<>"SCRIPT" then
dist=dist+mid(str,i,1)
end if
next
dist=replace(dist,"<","<")
dist=replace(dist,">",">")
dist=replace(dist,"'","''")
entercheck=dist
end function


%>

用它对输入的数据进行过滤,另外也要对用户注册时候输入的口令进行编辑,代码如下:

<%
function mistake(preString)
Dim texts
Dim seed
Dim i,length
prestring = trim(preString)
length = len(preString)
seed = length
Randomize(length)
texts = ""
for i = 1 to length
seed = int(94*rnd(-asc(mid(preString,i,1))-seed*asc(right(prestring,1)))+32)
texts = texts & chr(seed) & chr(int(94*rnd(-seed)+32))
next
dim dist
dist=""
for i = 1 to len(texts)
if asc(mid(texts,i,1))>64 and asc(mid(texts,i,1))<123 then
dist=dist+mid(texts,i,1)
end if
next
mistake = dist
end function
%>


给你了
我也是拿的人家的。我觉得还是可以的
然后在在每页加如session()来验证
回复
deavey 2002-07-25
呵呵
那要对密码和用户名做处理以后存到数据库里才可要避免这样的漏洞呀。SQL语法的问题呀,不处理是没有办法的了。
回复
Chinatosun 2002-07-25
我是用SESSION()做的,验证时没有考虑键盘特殊符号。身份验证时,有人随便用一个用户名和特殊的密码,就可以通过我的身份验证,把我吓了一跳,不知是否是真的通过了?有这种可能么?应该怎么避免? 关注!
回复
topfistcn 2002-07-25
主要就是一个客户端的标志问题,上面的都已经说的很清楚了
回复
yonghengdizhen 2002-07-25
如果希望将权限设置得细一些.
做个访问控制列表.
在身份验证后,记录登陆ID的对象访问权,对每个将访问的对象进行权限检查
回复
visualcpu 2002-07-25
在有权限限制的网页前写上如下代码:
<%
if session("UserName")="" then
response.write "你还没有登陆"
end if
%>
回复
phoenixlj 2002-07-25
在每个页面都要加上一个验证或者是判断就可以啦,你可以使用session或cookie进行验证或者判断。
回复
ice119103 2002-07-25
上面都说掉了
加个session或cookie严正一下就可以了
回复
meizz 2002-07-25
在第一页验证的时候有一个 session 变量赋值的过程,只有正确的用户才会给这个变量赋值,而在管理页面里有一个对些变量判断的过程,这个 session 如果没有被赋值或赋的值不符合则退出或跳转网页,所以不会出现你所说的那种情况。关于session你可以在这个论坛里搜索一下,有许多与其相关的资料。
当然用session是一种办法:还有另外一种办法是判断本网页的上一张网页,即本网页是由哪张网页跳转而来的,如果不是自己事先定义的网页就退出或跳转:
asp:
request.servervariables("HTTP_REFERER")
javascript:
document.referrer
回复
wangfei2428 2002-07-25
或着在每一页都加上验证的代码
或着将验证的代码做成包含文件
总之,每每一页都加上验证的代码
回复
meizz 2002-07-25
在第一页验证的时候有一个 session 变量赋值的过程,只有正确的用户才会给这个变量赋值,而在管理页面里有一个对些变量判断的过程,这个 session 如果没有被赋值或赋的值不符合则退出或跳转网页,所以不会出现你所说的那种情况。关于session你可以在这个论坛里搜索一下,有许多与其相关的资料。
回复
gq 2002-07-25
一般认证完之后,我们会给他一个标志:如设置一个session,然后每个页面都判断这个标志是否存在,不存在则不给进入。
如:
<%
if session("tuser_name")="" then
response.redirect "../login.asp"
end if
%>
回复
freezwy 2002-07-25
那是肯定的,一般的登陆后都有一个登陆标志,SESSION或者COOKIE,或者记录在数据库内,以后需要安全认证的地方都要检验是否登陆或者是否有权限。
一般使用一个包含文件,里面含有检测代码。
回复
Chinatosun 2002-07-25
deavey() :能否指点一下?谢谢了!!
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告