2011-03-18 94 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 
%>