Bu adım adım makalede, Microsoft FrontPage 2000, Active Server Pages (ASP) ve Microsoft Access veritabanı'nı kullanarak bir basit dosya güvenliği çözümü oluşturmak açıklar.
Önemli notlar
- Bu makaledeki örnek kod FrontPage yerleşik güvenlik işlevleri yerine olarak tasarlanmıştır. Örnekler, yalnızca Web sitenize gözatan kullanıcılara yönelik basit bir güvenlik mekanizması sağlamak için tasarlanmıştır. FrontPage 2000 güvenliği kullanıcı adlarını ve parolaları, Microsoft Access'e eklenen ile tümleştirme değil veritabanı.
- Yazılan kullanıcı adları ve parolalar Internet üzerinden düz metin olarak iletilir. Daha fazla güvenlik için Microsoft, Güvenli Yuva Katmanı (SSL) kullanan bir Web sunucusu kullanmanızı önerir şifreleme. Daha fazla bilgi için lütfen Web sitesi yöneticinize veya ınternet servis sağlayıcısı (ıSS) başvurun.
1. Adım - GET ASP özelliklerini, FrontPage 2000'de kullanıma hazır
FrontPage 2000'de, ASP özelliklerini kullanabilmeniz için aşağıdaki Microsoft Bilgi Bankası makalesinde listelenen bileşenleri yüklemeniz gerekir:
312638
(http://support.microsoft.com/kb/312638/
)
FrontPage 2000'de Active Server Pages (ASP) kullanmak için gerekli olan öğelerin açıklaması
Adım 2 - FrontPage 2000'de yeni Web Oluştur
Not Bu örnek kodun düzgün çalışması için Web adı LOGON olduğunu ve alt Web sitenizin kök kapalı olduğunu emin olmanız gerekir.
- Dosya menüsünde Yeni'yi tıklatın ve sonra Web ' i tıklatın.
- Şablonlar listesinde Boş Web ' i tıklatın.
- Aşağıdaki sözdizimini kullanarak, sunucunuzda Web konumunu belirtin
http:// your server /logon/
your server ASP kullanan Web sunucunuzun adıdır.
- Tamam ' ı tıklatın.
Adım 3 - Microsoft Access'i kullanarak bir veritabanı oluşturun.
- Microsoft Access'i başlatın.
- Dosya menüsünde Yeni'yi tıklatın.
- Seçenekler listesinde, Boş bir veritabanı) tıklatın.
- Dosya logon.mdb ad ve masaüstünüze kaydedin.
- Tablo bölümünde, Yeni ' yi tıklatın.
- Tasarım görünümü ' nü tıklatın ve sonra da Tamam ' ı tıklatın.
- Iki alan oluşturun:
- Alan adı, kullanıcı KIMLIĞI girin. Veri türü için metin ' i tıklatın ve sonra da Birincil anahtar ' ı tıklatın.
- Alan adı, PWD yazın. Veri türü için metni tıklatın.
- Dosya menüsünde Kaydet ' i tıklatın. Tablo tblUsers adlandırın ve sonra Tamam ' ı tıklatın.
- Görünüm menüsünde, Veri sayfası görünümü ' nü tıklatın.
- UID</a0> sütununa testuser yazın. PWD</a0> sütununa, parolayı yazın.
- Dosya menüsünden Kapat ' ı tıklatın.
- Microsoft Access'nden çıkın.
Not Güvenlik nedeniyle, parolalar büyük harfler, küçük harfler ve sayılar için karışımını kısıtlanır.
4 Adımda - Microsoft Access veritabanına al
- Dosya menüsünden Al ' ı tıklatın.
- Dosya Ekle ' yi tıklatın.
- Konum listesinde, masaüstünüzün'ı tıklatın.
- Step
3 oluşturduğunuz logon.mdb dosyasını tıklatın ve sonra Aç ' ı tıklatın.
- Değiştir ' i tıklatın.
- URL için _private/logon.mdb değiştirin ve Tamam ' ı tıklatın.
- Yeniden dosyayı içe aktarmak için Tamam ' ı tıklatın.
- Veritabanı bağlantısı eklemek isteyip istemediğiniz sorulursa, Hayır ' ı tıklatın.
5 Adım - ASP sayfaları oluşturma
Bu örnekle çalışmak için birkaç dosya oluşturmanız gerekmektedir. Önce bir
home page Web sitenize, <a2>bir
unsecure page</a2> ve <a4>sınama,
secure page oluşturun ve sonra
logon Web page ve
logon include file.
5A adım - giriş sayfası oluştur
Bu sayfa sitenizin varsayılan sayfası olarak hizmet verir ve
unsecure page ve daha sonra oluşturduğunuz
secure page bağlantılar içerir.
- FrontPage araç çubuğunda Yeni sayfa ' yı tıklatın.
- HTML görünümüne geçin ve varolan tüm HTML silin kodu.
- Sayfaya aşağıdaki kodu yapıştırın veya yazın:
<% @language="vbscript" %>
<html>
<head><title>Home Page</title></head>
<body>
<h3>Home Page</h3>
<p>You are logged on as:
<%
If Len(Session("UID")) = 0 Then
Response.Write "<b>You are not logged on.</b>"
Else
Response.Write "<b>" & Session("UID") & "</b>"
End If
%>
</p>
<ul>
<li><a href="secure.asp">Secure Page</a></li>
<li><a href="unsecure.asp">Unsecure Page</a></li>
</ul>
</body>
</html>
- Sayfayı default.asp, oturum açma Web kök klasörüne kaydedin.
- Dosya menüsünden Kapat ' ı tıklatarak sayfayı kapatın.
5B adım - güvensiz bir sayfayı oluşturun
Bu sayfayı, herkes göz atabiliyor temel bir ASP sayfası olur.
- FrontPage araç çubuğunda Yeni sayfa ' yı tıklatın.
- HTML görünümüne geçin ve varolan tüm HTML silin kodu.
- Sayfaya aşağıdaki kodu yapıştırın veya yazın:
<% @language="vbscript" %>
<html>
<head><title>Unsecure Page</title></head>
<body>
<h3>Unsecure Page</h3>
<p>You are logged on as:
<%
If Len(Session("UID")) = 0 Then
Response.Write "<b>You are not logged on.</b>"
Else
Response.Write "<b>" & Session("UID") & "</b>"
End If
%>
</p>
<p><a href="default.asp">Back to default</a></p>
</body>
</html>
- Sayfayı unsecure.asp, oturum açma Web kök klasörüne kaydedin."
- Dosya menüsünden Kapat ' ı tıklatarak sayfayı kapatın.
5 C adım - güvenli bir sayfa oluşturun.
Dışında kod sayfasının üstüne yakın aşağıdaki satırı ekleyin Bu adım
Step 5b içinde oluşturulan güvensiz sayfamla aynı sayfasıdır:
<!--#include virtual="/logon/_private/logon.inc"-->
bu kod satırını bir ASP Web sayfasına ekleme sayfa "güvenli" Web sayfası oluşturur.
- FrontPage araç çubuğunda Yeni sayfa ' yı tıklatın.
- HTML görünümüne geçin ve varolan tüm HTML silin kodu.
- Sayfaya aşağıdaki kodu yapıştırın veya yazın:
<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->
<html>
<head><title>Secure Page</title></head>
<body>
<h3>Secure Page</h3>
<p>You are logged on as:
<%
If Len(Session("UID")) = 0 Then
Response.Write "<b>You are not logged on.</b>"
Else
Response.Write "<b>" & Session("UID") & "</b>"
End If
%>
</p>
<p><a href="default.asp">Back to default</a></p>
</body>
</html>
- Sayfayı secure.asp, oturum açma Web kök klasörüne kaydedin.
- Dosya menüsünden Kapat ' ı tıklatarak sayfayı kapatın.
5 D adımında - logon sayfasını oluşturma
Oturum açma sayfası, standart bir Windows oturum açma iletişim kutusu benzer biçimde tasarlanmıştır.
secure page erişmeye çalışan kullanıcılar kullanıcı adı ve parolasını yazmak için bu sayfaya gönderilir.
- FrontPage araç çubuğunda Yeni sayfa ' yı tıklatın.
- HTML görünümüne geçin ve varolan tüm HTML silin kodu.
- Sayfaya aşağıdaki kodu yapıştırın veya yazın:
<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->
<%
' Was this page posted to?
If UCase(Request.ServerVariables("HTTP_METHOD")) = "POST" Then
' If so, verify the username/password that was entered.
If ComparePassword(Request("UID"),Request("PWD")) Then
' If comparison was good, store the user name...
Session("UID") = Request("UID")
' ..and redirect back to the original page.
Response.Redirect Session("REFERRER")
End If
End If
%>
<html>
<head><title>Logon Page</title>
<style>
body { font-family: arial, helvetica }
table { background-color: #cccccc; font-size: 9pt; padding: 3px }
td { color: #000000; background-color: #cccccc; border-width: 0px }
th { color: #ffffff; background-color: #0000cc; border-width: 0px }
</style>
</head>
<body bgcolor="#000000" text="#ffffff">
<h3 align="center"> </h3>
<div align="center"><center>
<form action="<%=LOGON_PAGE%>" method="POST">
<table border="2" cellpadding="2" cellspacing="2">
<tr>
<th colspan="4" align="left">Enter User Name and Password</th>
</tr>
<tr>
<td> </td>
<td colspan="2" align="left">Please type your user name and password.</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Site</td>
<td align="left"><%=Request.ServerVariables("SERVER_NAME")%>  </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">User Name</td>
<td align="left"><input name="UID" type="text" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Password</td>
<td align="left"><input name="PWD" type="password" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" align="center"><input type="submit" value="LOGON"></td>
<td> </td>
</tr>
</table>
</form>
</center></div>
</body>
</html>
- Sayfayı logon.asp, oturum açma Web kök klasörüne kaydedin.
- Dosya menüsünden Kapat ' ı tıklatarak sayfayı kapatın.
5E adım - bir oturum oluşturma içerme dosyası
Bu içerme dosyası kullanıcı adı ve parola işlevselliği sağlar ve
secure
page ve
logon
page tarafından kullanılır.
- FrontPage araç çubuğunda Yeni sayfa ' yı tıklatın.
- HTML görünümüne geçin ve varolan tüm HTML silin kodu.
- Sayfaya aşağıdaki kodu yapıştırın veya yazın:
<%
' Do not cache this page.
Response.CacheControl = "no-cache"
' Define the name of the users table.
Const USERS_TABLE = "tblUsers"
' Define the path to the logon page.
Const LOGON_PAGE = "/logon/logon.asp"
' Define the path to the logon database.
Const MDB_URL = "/logon/_private/logon.mdb"
' Check to see whether you have a current user name.
If Len(Session("UID")) = 0 Then
' Are you currently on the logon page?
If LCase(LOGON_PAGE) <> LCase(Request.ServerVariables("URL")) Then
' If not, set a session variable for the page that made the request...
Session("REFERRER") = Request.ServerVariables("URL")
' ...and redirect to the logon page.
Response.Redirect LOGON_PAGE
End If
End If
' This function checks for a username/password combination.
Function ComparePassword(UID,PWD)
' Define your variables.
Dim strSQL, objCN, objRS
' Set up your SQL string.
strSQL = "SELECT * FROM " & USERS_TABLE & _
" WHERE (UID='" & ParseText(UID) & _
"' AND PWD='" & ParseText(PWD) & "');"
' Create a database connection object.
Set objCN = Server.CreateObject("ADODB.Connection")
' Open the database connection object.
objCN.Open "driver={Microsoft Access Driver (*.mdb)}; dbq=" & _
Server.MapPath(MDB_URL) & "; uid=admin; pwd="
' Run the database query.
Set objRS = objCN.Execute(strSQL)
' Set the status to true/false for the database lookup.
ComparePassword = Not(objRS.EOF)
' Close your database objects.
Set objRS = Nothing
Set objCN = Nothing
End Function
' This function restricts text to alpha-numeric data only.
Function ParseText(TXT)
Dim intPos, strText, intText
For intPos = 1 TO Len(TXT)
intText = Asc(Mid(TXT,intPos,1))
If (intText > 47 And intText < 58) Or _
(intText > 64 And intText < 91) Or _
(intText > 96 And intText < 123) Then
strText = strText & Mid(TXT,intPos,1)
End if
Next
ParseText = strText
End Function
%> - Logon.inc, oturum açma Web <a1>_private</a1> klasördeki sayfayı kaydedin.
- Dosya menüsünden Kapat ' ı tıklatarak sayfayı kapatın.
Adım 6 - <a1>Test</a1> oturum açma Web
- FrontPage Klasör Listesi'nde, default.asp ' ı tıklatın. FrontPage araç çubu?unda tarayıcı içinde önizleme ' yi tıklatın.
- Şimdi tarayıcınızı örnek giriş sayfasını yükler ve bu, oturum açmamış bulunuyorsunuz olduğunu gösterir.
- Güvensiz sayfanın bağlantısını tıklatın. Sayfa yüklenir ve oturum açmadığınızı gösterir. Bağlantıyı yeniden varsayılan sayfaya Ek Yardım düğmesini tıklatın.
- Güvenli bir sayfa için bağlantıyı tıklatın. Oturum açma sayfası yerine güvenli bir sayfa olarak yükler.
- Testuser kullanıcı adı yazın, parolayı parolayı yazın ve LOGON</a1>'ı tıklatın.
- Güvenli bir sayfa görüntülenir ve testuser olarak oturum açtığınızı gösterir. Bağlantıyı yeniden varsayılan sayfaya Ek Yardım düğmesini tıklatın.
- Örnek giriş sayfasını yükler ve testuser olarak oturum açtığınızı gösterir.
- Güvensiz sayfanın bağlantısını tıklatın. Sayfa yüklenir ve testuser olarak oturum açtığınızı gösterir.
Oturum açma örnek özelleştirme
Oturum açma örnek, aşağıdaki yollarla özelleştirebilirsiniz:
- Kullanıcı adları ve parolalar ekleme: FrontPage ile çift ve sonra da kullanıcı tblUsers tabloya ekleme veritabanını açabilirsiniz.
- Diğer Web sayfalarını güvenli: Web'iniz içinde başka bir Web sayfasını korumak için <a0></a0>, bir ASP dosya adı uzantısı ile örneğin mypage.asp, dosyayı kaydedin ve sonra aşağıdaki iki satırı çok dosyanın üstüne eklemeniz gerekir:
<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->
ilk satırı komut dosyası diliniz için Microsoft Visual Basic Scripting Edition (VBScript) kullandığınızı belirtir; ikinci satır daha önce oluşturduğunuz logon include file kullanıcı adı ve parola işlevselliği içerir.
Active Server Pages (ASP) ile veritabanları ve güvenlik tümleştirme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
299987
(http://support.microsoft.com/kb/299987/
)
ASP güvenliğini uygulamak için veritabanı ve ASP oturumları nasıl kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)
300382
(http://support.microsoft.com/kb/300382/
)
IIS'de bir ASP sayfasından nasıl veritabanı bağlantısı oluşturulur (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)