أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية استخدام قاعدة البيانات وجلسات ASP لتطبيق ASP الأمان

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية299987
إخلاء مسؤولية من محتوى قديم في قاعدة المعارف
عن تقديم الدعم التقني لهاو لذلك تظهر هذه المقالة كما هي و لن يتم تحديثها Microsoft تمت كتابة هذه المقالة بخصوص منتجات توقفت
ملاحظة
نوصي بشدة لكافة المستخدمين الترقية إلى Microsoft خدمات معلومات إنترنت (IIS) 6.0 الإصدار قيد التشغيل على نظام التشغيل Windows Server 2003. زيادة IIS 6.0 بشكل ملحوظ ويب أمان البنية التحتية. لمزيد من المعلومات حول المواضيع ذات الصلة بالأمان IIS قم بزيارة موقع Microsoft التالي على الويب:
الموجز
تتناول هذه المقالة خطوة بخطوة حول كيفية تطبيق الأمان المستند إلى النماذج للتطبيقات صفحات الملقم النشطة (ASP). يمكنك استخدام هذه الآلية عندما يكون التطبيق الخاص بك المزودة بإجراءات أمان متقدمة أو عندما تريد السماح للمستخدمين المصادقين فقط. يمكنك أيضاً استخدام هذه الآلية عند المستخدمين ليست جزءاً من مجال داخلي ، مثل مستخدمي الإنترنت. تستخدم قاعدة بيانات لتخزين معلومات المستخدمين هذا النموذج ومن ثم التحقق من صحة المستخدمين من قاعدة البيانات هذه.

المتطلبات الأساسية

  • محطة عمل Microsoft Windows NT 4.0, Windows NT 4.0 متقدمة Server أو Microsoft Windows 2000 Professional Windows 2000 Server أو Windows 2000 Server أو Microsoft Windows Server 2003
  • Microsoft ملقم معلومات إنترنت (IIS) 4.0 لأجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows NT 4.0 ، Microsoft خدمات معلومات إنترنت (IIS) 5.0 لأجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows 2000 أو Microsoft خدمات معلومات إنترنت (IIS) 6.0 لأجهزة الكمبيوتر التي تقوم بتشغيل Windows Server 2003
  • Microsoft SQL Server 6.5 أو إصدار أحدث من SQL Server

كيفية تصميم هذا التطبيق

يوضح هذا القسم باختصار الخطوات المطلوبة لتنفيذ المستندة إلى النماذج الأمان أو أمان مخصصة على تطبيق ويب ASP الخاص بك:
  1. يقدم نموذج تسجيل دخول للمستخدم.
  2. التحقق من صحة بيانات اعتماد المستخدم مقابل معلومات المستخدم التي يتم تخزينها في قاعدة بيانات المستخدم الخاص بك.
  3. إنشاء متغير جلسة عمل ثم قم بتعيين القيمة الخاصة به إلى معرف المستخدم.
  4. للحصول على كل طلب اللاحقة يجعل المستخدم تأكيد قيمة هذا المتغير جلسة العمل غير مساو لـ سلسلة فارغة ("") لتأكيد أن المستخدم قد قام بتسجيل الدخول.
  5. إذا كان المتغير فارغاً, المستخدم غير مستخدم صالح أو قيام المستخدم بتسجيل من جلسة عمل. إعادة توجيه المستخدم إلى صفحة تسجيل الدخول إذا كان المتغير فارغاً.
  6. في حالة فشل تسجيل الدخول بسبب عدم وجود المستخدم في قاعدة البيانات المستخدم قد تكون غير مسجلة في الموقع الخاص بك حتى الآن. إعادة توجيه المستخدم إلى صفحة Register.asp بحيث يمكن تسجيل المستخدم في موقعك. عندما يسجل المستخدم تتم إضافة هذه التفاصيل المستخدم إلى قاعدة بيانات المستخدم.
  7. توفير ارتباط إلى سجل خارج الصفحة على كافة الصفحات باستثناء الصفحة تسجيل الدخول حتى يمكن للمستخدم تسجيل من جلسة عمل. مسح هذه الصفحة متغير جلسة العمل التي تحتضن معرف المستخدم بتعيين سلسلة فارغة ("").

إنشاء جدول قاعدة بيانات المستخدم

  1. انقر فوق ابدأ ثم انقر فوق تشغيل واكتب المفكرة في المربع فتح ثم ثم اضغط مفتاح "الإدخال" لتشغيل المفكرة.
  2. تمييز البرنامج النصي SQL التالي انقر بزر الماوس الأيمن فوق البرنامج النصي ثم انقر فوق نسخ. في "المفكرة" ، انقر فوق "لصق" على تحرير القائمة.
    CREATE TABLE [Users] (	[uid] [varchar] (25) NOT NULL ,	[password] [varchar] (25) NOT NULL ,	CONSTRAINT [PK_Users] PRIMARY KEY  CLUSTERED 	(		[uid]	)  ON [PRIMARY] ) ON [PRIMARY]GO					
  3. من القائمة ملف، انقر فوق حفظ. في المربع اسم الملف ، اكتب User.txt.
  4. انقر فوق ابدأ وأشر إلى البرامج، وأشر إلى Microsoft SQL Server ، ثم انقر فوق محلل استعلام. في مربع الحوار الاتصال بـ SQL Server ، حدد اسم الخادم الذي يقوم بتشغيل SQL Server و معرّف المستخدم و كلمة المرور للاتصال بملقم SQL.
  5. من القائمة ملف، انقر فوق فتح. في مربع الحوار فتح ، انقر فوق All Files (*. *) في المربع أنواع الملفات. انقر فوق User.txt في القائمة ثم انقر فوق فتح.
  6. في المربع DB على شريط الأدوات "، حدد قاعدة البيانات الذي تريد إنشاء هذا الجدول. إذا لم يكن لديك قاعدة بيانات محددة لهذا الغرض انقر فوق Pubs إنشاء هذا الجدول في قاعدة بيانات Pubs نموذج.
  7. بعد تحديد قاعدة البيانات "، انقر فوق تنفيذ القائمة استعلام لتشغيل الاستعلام. هذه الخطوة بإنشاء جدول مستخدمين في قاعدة البيانات المحدد.

إنشاء دليل ظاهري وتكوين

  1. في "مكتشف Windows" ، قم بإنشاء مجلد تحت جذر ويب. جذر ويب بشكل افتراضي SystemDrive: \Inetpub\Wwwroot. اسم المجلد ASPSecureAPP.
  2. افتح وحدة إنترنت خدمات إدارة التحكم بالإدارة لـ Microsoft (MMC).

    ملاحظة يدعى هذا MMC إدارة خدمات إنترنت في Windows NT 4.0.
    • لفتح "إدارة خدمات إنترنت" على جهاز كمبيوتر يعمل بنظام التشغيل Windows 2000 أو Windows Server 2003 انقر فوق ابدأ ثم انقر فوق تشغيل ، واكتب inetmgr في مربع فتح ومن ثم اضغط ENTER.
    • لفتح "إدارة خدمة إنترنت" على جهاز كمبيوتر يعمل بنظام التشغيل Windows NT 4.0 اتبع الخطوات التالية:
      1. انقر فوق ابدأ وأشر إلى البرامج، وأشر إلى Windows NT 4.0 Option Pack ، ثم انقر فوق ملقم معلومات إنترنت لـ Microsoft.
      2. انقر فوق إدارة خدمة إنترنت.
  3. قم بتوسيع الجهاز ثم قم بتوسيع موقع ويب الافتراضي. انقر بزر الماوس الأيمن فوق المجلد ASPSecureAPP الذي قمت بإنشائه في الخطوة 1 ثم انقر فوق خصائص.
  4. في التبويب الدليل في مربع الحوار "خصائص" ، انقر فوق إنشاء في المقطع إعدادات التطبيق لوضع علامة على الدليل على أنه تطبيق.

إنشاء صفحات نموذج

ملاحظة في حالة استخدام "المفكرة" لإنشاء هذه الصفحات تأكد من انقر فوق كافة الملفات في المربع حفظ بنوع في مربع الحوار حفظ باسم عند حفظ الملفات.
Logon.asp
هذه الصفحة بتمكين اكتب اسم المستخدم وكلمة المرور الوصول إلى الموقع.

قم بنسخ التعليمة البرمجية التالية في صفحة ASP جديدة. قم بحفظ الملف كملف Logon.asp في المجلد ASPSecureAPP الدليل Inetpub\Wwwroot.
<%'The following three lines of code are used to make sure that this page is not cached on the client.Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "no-cache"Response.Expires = -1%><html><body><form action="Validate.asp" method="post"><P>Login ID:&#xa0;&#xa0;  <INPUT type=text id=UID  name=UID> <br>Password:&#xa0;&#xa0;<input type="password" id="passwd" name="passwd"> </P><input type="submit" value="Logon" id="submit1" name="submit1"></form></body></html>				
Validate.asp
بعد توفير المستخدم الخاصة به معلومات تسجيل الدخول تسجيل الدخول إلى التطبيق الخاص بك, هذه الصفحة بالتحقق من صحة معلومات المستخدم ومن ثم إعادة توجيه المستخدم إلى الصفحة المناسبة.

قم بنسخ التعليمة البرمجية التالية في ASP جديد الصفحة. تغيير معلمات سلسلة الاتصال بحيث أنها تحتوي على قيم صالحة. معلمات سلسلة الاتصال هي التالية:
  • معرف المستخدم
  • كلمة المرور
  • الكتالوج الأولي
  • مصدر البيانات
قم بحفظ الملف كملف Validate.asp في المجلد ASPSecureAPP الدليل Inetpub\Wwwroot.
<%Response.Buffer=true'The following three lines of code are used to make sure that this page is not cached on the client.Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "no-cache"Response.Expires = -1Dim useridDim Pwd'Assign the user ID to this variable. The user provides the user ID.userid= Request.Form("UID")'Check whether userid is an empty string. If it is empty, redirect to Logon.asp.'If it is not empty, connect to the database, and validate the user.if userid <> "" then    pwd = Request.Form("passwd")	    Dim Cn    Dim Rs    Dim StrConnect'Specify the connection string to access the database.'Remember to change the following connection string parameters to reflect the correct values'for your SQL server.    StrConnect = "Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;Initial Catalog=pubs;" & _    "Network Library=dbmssocn;Data Source=servername"    Set Cn = Server.CreateObject("ADODB.Connection")    Cn.Open StrConnect    Set Rs = Server.CreateObject("ADODB.Recordset")    Rs.Open "Select * from Users where uid='" & userid & "'",Cn'Check to see whether this user ID exists in your database.    If Not Rs.EOF then        If strcomp( pwd, Rs.Fields("password").value , 1) = 0 then'Password is correct. Set a session variable, and redirect the user to a Default.asp page'or the main page in your application.            Session("UID") = userid            Response.Redirect "Default.asp"            Response.End        Else'Password is incorrect. Redirect the user to the logon page.            Response.Redirect "Logon.asp"            Response.End        End if    Else'If the user is not in your database, point him or her to the Register.asp page'so that he or she can register at your Web site to access your application.        Response.Redirect "Register.asp"        Response.End    End ifElse    Response.Redirect "Logon.asp"    Response.EndEnd if%>				
Register.asp
هذه الصفحة بتمكين تسجيل معرف المستخدم وكلمة المرور الوصول إلى الموقع.

قم بنسخ التعليمة البرمجية التالية في ASP جديد الصفحة. تغيير معلمات سلسلة الاتصال بحيث أنها تحتوي على قيم صالحة. معلمات سلسلة الاتصال هي التالية:
  • معرف المستخدم
  • كلمة المرور
  • الكتالوج الأولي
  • مصدر البيانات
قم بحفظ الملف كملف Register.asp في المجلد ASPSecureAPP الدليل Inetpub\Wwwroot.
<%Response.Buffer=true'The following three lines of code are used to make sure that this page is not cached on the client.Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "no-cache"Response.Expires = -1'Check whether user has submitted user name and password so that you can 'add that user to the users database and register him or her as a valid 'user to use this application.'This is just the minimal code that you need. You can customize this the way you want.Dim pwdDim useriduserid = Request.Form("uname")pwd = Request.Form("pwd")If userid <> "" then    If  pwd <> "" then        Dim Cn        Dim Rs        Dim StrConnect'Specify the connection string to access the database.'Remember to change the following connection string parameters to reflect the correct values'for your SQL server.        StrConnect = "Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;" & _        "Initial Catalog=pubs;Network Library=dbmssocn;Data Source=servername"        Set Cn = Server.CreateObject("ADODB.Connection")        Cn.Open StrConnect        Set Rs = Server.CreateObject("ADODB.Recordset")        Rs.Open "Select * from Users where uid='" & userid & "'",Cn,3        If Rs.RecordCount>0 then            Response.Write "The Username that you entered has already been taken by someone else."            Response.Write "Use a different Username."            Set Rs = Nothing            Set Cn = Nothing        Else            Dim records            Cn.Execute "INSERT INTO USERS1 (uid,password) VALUES" & _            "('" & userid & "','" & pwd & "')" , records            If records=1 then                Response.Write "You have been registered successfully."                Set Rs = Nothing                Set Cn = Nothing                Session("UID")= userid                Response.Redirect "Default.asp"                Response.End 			            Else                Response.Write Err.Description                Set Rs = Nothing                Set Cn = Nothing                Response.End 			            End if        End if    Else    Response.Write "Password is empty. Could not register. Try again."    End ifEnd if%><html><head><script language="javascript">function callsubmit(){if (frm1.pwd.value==frm1.pwdc.value) {frm1.submit();}else{alert("Password does not match. Re-enter the password");}}</script></head><body><form action="" method="post" id=frm1 name=frm1><P>Login ID:&#xa0;&#xa0;  <INPUT type=text id=uname  name=uname> <br>Password:&#xa0;&#xa0;<input type="password" id="pwd" name="pwd"> <br>Confirm Password:&#xa0;&#xa0;<input type="password" id="pwdc" name="pwdc"> </P><input type="button" value="Register" id="submit1" name="submit1" onclick=javascript:callsubmit();></form></body></html>				
Logoff.asp
هذه الصفحة بتمكين تسجيل الخروج.

قم بنسخ التعليمة البرمجية التالية في صفحة ASP جديدة. قم بحفظ الملف كملف Logoff.asp في المجلد ASPSecureAPP الدليل Inetpub\Wwwroot.
<%Response.Buffer=True'The following three lines of code are used to make sure that this page is not cached on the client.Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "no-cache"Response.Expires = -1'Set the session variable to an empty string and also destroy the session to make'to complete the user session.Session("UID")=""Session.AbandonResponse.Redirect "Logon.asp"Response.End%>				
Default.asp
يمكنك استخدام هذه الصفحة لاختبار الصفحات الأخرى التي قمت بإنشائها.

قم بنسخ التعليمة البرمجية التالية في صفحة ASP جديدة. قم بحفظ الملف كملف Default.asp في المجلد ASPSecureAPP الدليل Inetpub\Wwwroot.
<%'The following three lines of code are used to make sure that this page is not cached on the client.Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "no-cache"Response.Expires = -1if session("UID")="" then     Response.Redirect "Logon.asp"    Response.Endelse    Response.Write "You are logged on as " & session("UID") & "<br>"end if%><HTML><BODY><A HREF="Logoff.asp">Click here to log off</A><BODY></HTML>				

إضافة رمز التحقق من الصحة إلى صفحات

التعليمة البرمجية التالية يتحقق ما إذا كان المستخدم قام بالفعل بتسجيل الدخول إلى موقع ويب الخاص بك ثم تسجيل بعد.

نسخ هذه الكتلة من التعليمات البرمجية في كل من صفحات ASP محسنة الأمان ما عدا Logon.asp وصفحة Validate.asp. لا تقم بإضافة هذه التعليمة البرمجية إلى صفحة Logon.asp أو إلى صفحة Validate.asp. تأكد من لصق هذه التعليمة البرمجية في أعلى كل صفحة بحيث تظهر هذه التعليمة البرمجية أولاً.
<%'The following three lines of code are used to make sure that this page is not cached on the client.Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "no-cache"Response.Expires = -1if session("UID")="" then     Response.Redirect "Logon.asp"    Response.Endend if%>				

كيفية عمل هذا التطبيق

بشكل أساسي, هذا التطبيق يحتوي على صفحتين (Logon.asp و Register.asp) التي يمكن لأي شخص عرضها دون توفير أوراق الاعتماد الخاصة بهم. لعرض بقية الصفحات يجب على مستخدم تسجيل الدخول باستخدام معرف مستخدم صالح وكلمة المرور. لذلك، عند قيام مستخدم بالاستعراض مباشرة إلى أي صفحة تتطلب معلومات تسجيل الدخول, المستخدم توجيه إلى صفحة Logon.asp. يجب على المستخدمين توفير معرف مستخدم صالح وكلمة المرور في صفحة Logon.asp. إذا كانت كلمة المرور غير صحيحة، يمكن أن يحاول المستخدم تسجيل الدخول مرة أخرى.

في حالة عدم وجود معرّف المستخدم وكلمة المرور للمستخدم في قاعدة البيانات الخاصة بك إعادة توجيه المستخدم إلى صفحة Register.asp حيث يمكن تسجيل المستخدم لاستخدام التطبيق الخاص بك. عند الصفحة تسجيلات المستخدم في موقع ويب الخاص بك عبر Register.asp تم إدخاله تفاصيل المستخدم في قاعدة بيانات المستخدم الذي يتم استخدامه للتحقق من صحة المستخدمين.

استكشاف الأخطاء وإصلاحها

  • استناداً إلى المتطلبات وهي الطريقة الآمنة هذا التطبيق, يمكنك تمكين تشفير طبقة مآخذ التوصيل الآمنة (SSL) على Logon.asp لتجنب نقل بيانات اعتماد المستخدم في نص واضح.
  • عدم التعيين حسابات المستخدمين هذه على حسابات Windows. لذلك، لا يمكنك مباشرة استخدام حسابات Windows لتسجيل الدخول إلى هذا التطبيق.
  • تستخدم آلية الأمان هذه المعلومات المستندة إلى جلسة ASP. لذلك، لا تعمل هذه الآلية للمستخدمين الذين لم يتم تمكين ملفات تعريف الارتباط.
مراجع
لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft:
172138كيفية إنشاء دليل ظاهري في خدمات معلومات إنترنت (IIS)
282060موارد عن تأمين "خدمات معلومات إنترنت"
299970كيفية استخدام أذونات NTFS لحماية صفحة ويب قيد التشغيل على IIS 4.0 أو 5.0

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 299987 - آخر مراجعة: 06/16/2006 08:29:38 - المراجعة: 4.2

Microsoft Active Server Pages 4.0

  • kbmt kbaspobj kbdatabase kbhowtomaster kbsecurity KB299987 KbMtar
تعليقات
/html>ppendChild(m); >