2011-03-18 103 views
0

我有一个页面需要更安全。基本上该页面显示了几个电话号码,并用html编写。该服务器仅支持asp。并且只有2-3人将会访问此页面。我想最简单的用户名密码脚本,只是为了这个页面。经典ASP单页安全

这可能吗?我所看到的大部分教程都是为了设置两页而设计的。

不是数据库驱动的,密码/用户名将会在代码

回答

1

如果您在IIS上的Windows域环境中执行此操作,则可以根据登录用户限制该页面。不需要任何形式。您必须确保服务器未设置为允许匿名登录。

domainUsername = Request.ServerVariables("AUTH_USER") 
if domainUsername = "domain\usera" or domainUsername = "domain\userb" then 
    'show numbers 
else 
    'show error 
end if 
1

这已经有一段时间,因为我做了任何传统的ASP,所以语法可能有点过,但基本上它看起来像:

<% 
    Function Login(username,password) 
     Login = False 
     If Trim(LCase(username)) = "somebodywhocanseethepage" And Trim(LCase(password)) = "opensaysame" Then 
       Login = True 
     End If 
    End Function 

    Sub WriteLoginForm() 
    %> 
    <form action="<%= Request.ServerVariables("SCRIPT_NAME") %>" method="post"> 
      <input type="hidden" name="_TRIGGER" id="_TRIGGER" value="LOGIN" /> 
      Username: <input type="text" name="username" id="username" /><br /> 
      Password: <input type="password" name="password" id="password" /><br /> 
      <input type="submit" value="Login" /> 
    </form> 
    <% 
    End Sub 

    Sub WritePageContent() 
    %> 
    <h1>Phone Numbers</h1> 
    <ul> 
     <li>867-5309</li> 
     <li>911</li> 
     <li>2 8 1, 3 3 oh, eight zero zero fo'</li> 
    </ul> 
    <% 
    End Sub 

    If Request.Form("_TRIGGER") = "LOGIN" 
     If Login(Request.Form("username"),Request.Form("password")) 
      WritePageContent 
     Else 
      Response.Write "Login failed.<br />" 
      WriteLoginForm 
     End If 
    Else 
     WriteLoginForm 
    End If 
%> 

我没有测试这个,但是如果它不是100%正确的,它非常接近,你可以调整它的工作方式,你需要它。如果您需要进行任何编辑,请告诉我,以便我可以为未来的用户更新答案。

1

只是检查查询字符串密码。根据问题的要求,这非常简单,我真的不敢在这个脚本中提供任何远程敏感的东西,但对于绝对的基本保护,这应该就足够了。

我将密码从查询参数名称中删除,因为我确信很多人都会通过网络嗅探那类数据。

例URL:

http://www.mysite.com/page.asp?mysecretquery=mypassword

<% 
    if request.querystring("mysecretquery") = "mypassword" then 
%> 
<html> 
<body> 
    My data. 
</body> 
</html> 
<% 
    else 
     response.write("Error") 
    end if 
%>