程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> ASP和SQL Server若何構建網頁防火牆

ASP和SQL Server若何構建網頁防火牆

編輯:MSSQL

ASP和SQL Server若何構建網頁防火牆。本站提示廣大學習愛好者:(ASP和SQL Server若何構建網頁防火牆)文章只能為提供參考,不一定能成為您想要的結果。以下是ASP和SQL Server若何構建網頁防火牆正文


ASP是Web上的客戶機/辦事器構造的中央層,固然它應用劇本說話(Java Script,VB Script等)編寫,法式代碼在辦事器上運轉,在客戶端僅可看到由ASP輸入的靜態HTML文件,但ASP仍具有某些破綻,采用必定手腕也能夠看到ASP法式的源碼。這時候,經由過程ASP與SQL Server相聯合,我們可以設計出簡略、高效、靠得住的運用法式。

為網頁設置防火牆的重要目標是依據網頁內容對分歧來訪者供給分歧的辦事,應用Java Script或VB Script,我們很輕易做到這一點。但網頁的源碼在客戶閱讀器中可以被看到,拜訪者可以檢查所用的用戶辨別辦法,這只是一個外面情勢的防火牆。

上面簡略引見一下其樹立進程。

1、樹立Login

在SQL Server上樹立拜訪者的Login和Password。

2、在收集辦事器上創立數據庫DSN

應用“掌握面板”中的“ODBC數據源治理器”創立某個數據庫的ODBC 數據資本名,即DSN,如許今後可以經由過程應用數據庫DSN銜接詳細的數據庫。

“ODBC數據源治理器”供給了三種DSN,分離為用戶DSN、體系DSN和文件DSN。個中,用戶DSN會把響應的設置裝備擺設信息保留在Windows的注冊表中,然則只許可創立該DSN的登錄用戶應用。體系DSN異樣將有關的設置裝備擺設信息保留在體系注冊表中,然則與用戶DSN分歧的是體系DSN許可一切登錄辦事器的用戶應用。

與上述兩種數據庫DSN分歧,文件DSN把詳細的設置裝備擺設信息保留在硬盤上的某個詳細文件中。文件DSN許可一切登錄辦事器的用戶應用,並且即便在沒有任何用戶登錄的情形下,也能夠供給對數據庫DSN的拜訪支撐。另外,由於文件DSN被保留在硬盤文件裡,所以可以便利地復制到其它機械中。如許,用戶可以纰謬體系注冊表停止任何修改便可直接應用在其它機械上創立的DSN。

在以上三種數據庫DSN中,建議用戶選擇體系DSN或文件DSN,假如用戶更愛好文件DSN的可移植性,可以經由過程在NT體系下設定文件的拜訪權限取得較高的平安保證。

樹立新的DSN,用戶起首選擇“添加”,然後在彈出窗口當選擇用戶將要樹立銜接的數據庫類型並選擇列表中的“SQL Server”項。假如用戶是樹立文件DSN,則單擊“下一步”按鈕並在隨後的對話框中輸出所要樹立的文件DSN的文件名和保留途徑。假如用戶樹立的是體系DSN,單擊“完成”按鈕。

在選擇完數據庫以後,用戶須要對數據庫DSN停止設置。用戶須要選擇供給數據庫辦事的詳細辦事器,設定登錄用戶名和口令,和用戶將要銜接的數據庫。

3、法式設計

上面要完成的就是一個簡略的頁面防火牆的功效。此頁面只限制本單元外部網的用戶停止拜訪(在此假定外部網的IP地址是從10.61.96.?至10.65.97.?之間),假如是單元內部用戶停止拜訪則請求輸出拜訪用戶名及暗碼。在此要應用到request對象的ServerVariables屬性,經由過程它來取得情況變量的值。

法式源碼(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地址等信息,該法式便可以運轉了。

固然,下面只是完成在一個頁面中的防火牆功效。假如一個網站有多個頁面的話,可以設置一個session變量來對用戶停止標記,鄙人面的頁面中都停止斷定。

願望經由過程本文的引見,可以或許給你帶來贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved