【问题标题】:classic ASP one page security经典的 ASP 一页安全
【发布时间】:2011-03-18 16:10:49
【问题描述】:

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

这可能吗?我看到的大多数教程都是针对两页设置的。

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

【问题讨论】:

    标签: html authentication asp-classic


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我已经有一段时间没有做任何经典的 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% 正确,那么它非常接近,您可以对其进行调整以按照您的需要工作。如果您需要进行任何修改,请告诉我,以便我为未来的用户更新答案。

      【讨论】:

        【解决方案3】:

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

        我从查询参数名称中删除了密码,因为我相信很多人都会嗅探通过网络传输的那种数据。

        示例网址:

        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
        %>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多