溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP和SQL Server中怎么構建網頁防火墻

發(fā)布時間:2021-07-26 11:00:21 來源:億速云 閱讀:125 作者:Leah 欄目:數(shù)據(jù)庫

ASP和SQL Server中怎么構建網頁防火墻,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、建立Login

在SQL Server上建立訪問者的Login和Password。

二、在網絡服務器上創(chuàng)建數(shù)據(jù)庫DSN

使用“控制面板”中的“ODBC數(shù)據(jù)源管理器”創(chuàng)建某個數(shù)據(jù)庫的ODBC 數(shù)據(jù)資源名,即DSN,這樣以后可以通過使用數(shù)據(jù)庫DSN連接具體的數(shù)據(jù)庫。

“ODBC數(shù)據(jù)源管理器”提供了三種DSN,分別為用戶DSN、系統(tǒng)DSN和文件DSN。其中,用戶DSN會把相應的配置信息保存在Windows的注冊表中,但是只允許創(chuàng)建該DSN的登錄用戶使用。系統(tǒng)DSN同樣將有關的配置信息保存在系統(tǒng)注冊表中,但是與用戶DSN不同的是系統(tǒng)DSN允許所有登錄服務器的用戶使用。

與上述兩種數(shù)據(jù)庫DSN不同,文件DSN把具體的配置信息保存在硬盤上的某個具體文件中。文件DSN允許所有登錄服務器的用戶使用,而且即使在沒有任何用戶登錄的情況下,也可以提供對數(shù)據(jù)庫DSN的訪問支持。此外,因為文件DSN被保存在硬盤文件里,所以可以方便地復制到其它機器中。這樣,用戶可以不對系統(tǒng)注冊表進行任何改動就可直接使用在其它機器上創(chuàng)建的DSN。

在以上三種數(shù)據(jù)庫DSN中,建議用戶選擇系統(tǒng)DSN或文件DSN,如果用戶更喜歡文件DSN的可移植性,可以通過在NT系統(tǒng)下設定文件的訪問權限獲得較高的安全保障。

建立新的DSN,用戶首先選擇“添加”,然后在彈出窗口中選擇用戶將要建立連接的數(shù)據(jù)庫類型并選擇列表中的“SQL Server”項。如果用戶是建立文件DSN,則單擊“下一步”按鈕并在隨后的對話框中輸入所要建立的文件DSN的文件名和保存路徑。如果用戶建立的是系統(tǒng)DSN,單擊“完成”按鈕。

在選擇完數(shù)據(jù)庫之后,用戶需要對數(shù)據(jù)庫DSN進行設置。用戶需要選擇提供數(shù)據(jù)庫服務的具體服務器,設定登錄用戶名和口令,以及用戶將要連接的數(shù)據(jù)庫。

三、程序設計

下面要實現(xiàn)的就是一個簡單的頁面防火墻的功能。此頁面只限制本單位內部網的用戶進行訪問(在此假設內部網的IP地址是從10.61.96.?至10.65.97.?之間),如果是單位外部用戶進行訪問則要求輸入訪問用戶名及密碼。在此要使用到request對象的ServerVariables屬性,通過它來獲得環(huán)境變量的值。

程序源碼(firewall.asp)如下:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80"> <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0"> <title>firewall.asp</title> </head> <body background="#800080 "> <% '使用Request.ServerVariables("REMOTE_ADDR")得到IP地址并保存在變量remoteip中 remoteip=Request.ServerVariables("REMOTE_ADDR") stip=cstr(remoteip) 取得IP地址第三個段的值并保存到stip中 for i=1 to 2 stip=right(stip,len(stip)-instr(1,stip,".")) next stip=left(stip,instr(1,stip,".")-1) 'IP地址有效性檢驗及密碼驗證,包括兩方面的內容:如果IP地址符合則通過驗證;如果IP地址不符合則檢驗輸入的用戶名、密碼是否正確 if (left(remoteip,5) <> "10.61" or stip<"96" or stip>"97") then username=request.form("t1") password=request.form("t2") Set fs = CreateObject("Scripting.FileSystemObject") Set thisfile = fs.OpenTextFile("dsn.txt") db loc=thisfile.readline thisfile.close cnstr=db_loc&&"uid="&&username&&";"&&"pid="&&password on error resume next set cn=server.createobject("adodb.connection") cn.open cnstr if err=3709 then %>  <p><font color="#FF0000">對不起,用戶:<%=username%>沒有訪問權限,或密碼不正確! <BR></font></p> <form method="POST">  <p align="center">用戶名:<input type="text" name="T1" size="20">口令:<input type="password" name="T2" size="20"><input type="submit" value="提交" name="B1"><input type="reset" value="全部重寫" name="B2">  </p> </form>  <%end if cn.close  set cn=nothing%> <%else %> 恭喜您,您已經通過了驗證,可以直接使用本站點的資源! <%end if%> </body> </html>

稍微修改一下上面如IP地址等信息,該程序就可以運行了。

當然,上面只是實現(xiàn)在一個頁面中的防火墻功能。如果一個網站有多個頁面的話,可以設置一個session變量來對用戶進行標志,在下面的頁面中都進行判斷。

看完上述內容,你們掌握ASP和SQL Server中怎么構建網頁防火墻的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI