تهديدات الأمان التطبيق WEB IMPROVING: AND COUNTERMEASURES: تصحيحات وتعليقات

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

867600
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
تحتوي هذه المقالة على تعليقات التصحيحات ومعلومات حول أخطاء المعروفة المتعلقة دفتر Microsoft نقش & الممارساتتحسين الأمان تطبيق ويب: التهديدات و المضادة ، ISBN 0-7356-1842-9

يتم تحديث إصدار ويب دفتر كما يمكننا العثور على الأخطاء. قد تجد العديد أو كافة الأخطاء أدناه تصحيح مسبقاً في إصدار ويب الدفتر على MSDN.

يتم تناول المواضيع التالية:
  • 273 الصفحة ، الفصل 10: إنشاء صفحات ASP.NET الآمنة وعناصر مقاطع: مقطع اكتمال عناصر تحكم ربط البيانات
  • 441 الصفحة ، الفصل 16: تأمين الكمبيوتر ملقم ويب ، المقطع: تعطيل NetBIOS و SMB
معلومات أخرى
273 الصفحة ، الفصل 10: إنشاء صفحات ASP.NET الآمنة وعناصر مقاطع: مقطع اكتمال عناصر تحكم ربط البيانات
http://msdn2.microsoft.com/en-us/library/aa302426.aspx

التغيير:

لا ترميز عناصر تحكم ربط البيانات ويب الإخراج. عنصر التحكم فقط يقوم بترميز الإخراج هو عنصر تحكم مربع نص عند تعيين الخاصية TextMode الخاصة به إلى متعدد. في حالة ربط أي عنصر تحكم آخر البيانات الذي يحتوي على تعليمات برمجية ضارة XSS يمكن تنفيذ التعليمات البرمجية على العميل. ونتيجة لذلك، إذا استرداد البيانات من قاعدة بيانات ولا يمكن أن معينة التي البيانات يعتبر صالح (ربما لأن قاعدة بيانات المشتركة مع التطبيقات الأخرى) ، ترميز البيانات قبل تمريرها إلى العميل.

To:

البيانات هي عناصر تحكم منضمة عناصر تحكم صفحة ويب التي يمكن ربطها مكونات البيانات خلال عام موروثة ‘ DataSource ’ الخاصية. ذكر قليل ، ستجد DataGrid و ListBox و DropDownList ليتم استخدامه جداً غالباً. استرداد البيانات ليست كافة عناصر تحكم منضمة تنفيذ الترميز عند عرض بيانات من مكون بيانات منضم; وهكذا، سيكون المسؤولية لتنفيذ ترميز على بيانات غير موثوق بها من مكونات لمنع هجمات XSS. على سبيل المثال، لا يمكن بأنها موثوق بها مكون بيانات في سيناريو حيث تطبيقات مختلفة مشاركة قاعدة بيانات واحدة. إذا كان يمكن للمهاجم القدرة على إدراج تعليمات برمجية ضارة XSS إلى قاعدة البيانات (بواسطة abusing ثغرة أمنية في أحد التطبيقات, على سبيل المثال) إلى تشغيل كافة التطبيقات التي تستخدم عناصر ويب ترميز غير منضم, تكون عرضة للإصابة بهجمات الفيروسات. تجنب ترميز إذا كان يمكن أن تكون معينة دائماً سيتم صالح الإخراج من مكون البيانات فقط.

ومن أمثلة عناصر تحكم ربط البيانات عدم تنفيذ ترميز DataGrid و DataList RadioButtonList و CheckBoxList. تنفيذ ترميز البيانات قد تختلف عنصر تحكم منضم حسب كل عنصر تحكم محدد. على سبيل المثال، بالنسبة DataGrid عنصر التحكم، لديك الخيارات التالية:
  • تشغيل كافة الأعمدة في قوالب واستخدامها HtmlEncode()/UrlEncode() يدوياً على كل استدعاء DataBinder.Eval
  • تجاوز أحد به أساليب DataBinding مثل OnDatabinding أو OnItemDataBound وتنفيذ ترميز على العناصر الخاصة به. يوضح المثال التالي كيفية تجاوز أسلوب OnItemDataBound لعنصر تحكم DataGrid إلى ترميز العناصر الخاصة به بواسطة إما باستخدام HtmlEncode() أو UrlEncode() عند الطلب:

...[DefaultProperty("Text"),  ToolboxData("<{0}:DataGrid runat=server></{0}:DataGrid>")] public class DataGrid : System.Web.UI.WebControls.DataGrid{    /// <summary>    /// The ItemDataBound event is raised after an item is data bound to the DataGrid    /// control. This event provides you with the last opportunity to access the data    /// item before it is displayed on the client. After this event is raised, the data    /// item is nulled out and no longer available. - .NET Framework Class Library    /// </summary>    /// <param name="e"></param>    protected override void OnItemDataBound(DataGridItemEventArgs e)    {      base.OnItemDataBound (e);       switch (e.Item.ItemType)      {        case ListItemType.Item:        case ListItemType.AlternatingItem:        case ListItemType.EditItem:        case ListItemType.SelectedItem:        case ListItemType.Footer:        case ListItemType.Header:        case ListItemType.Pager:            // even though not all of these ListItemTypes are data bound,          // perform HtmlEncode or UrlEncode on each control. If there are          // no controls, we perform HtmlEncode on any available text.          // Also, don't let &nbsp;'s be encoded.          TableCellCollection cCells = e.Item.Cells;          foreach (TableCell tc in cCells)          {            if (tc.Controls.Count > 0)            {              foreach (Control ctrl in tc.Controls)              {                                // don't perform HtmlEncode on URL's                if (ctrl is HyperLink)                {                  HyperLink hLnk = (HyperLink)ctrl;                   if (hLnk.Text.Length > 0)                    hLnk.Text = HttpUtility.HtmlEncode(hLnk.Text);                  if (hLnk.NavigateUrl.Length > 0)                    hLnk.NavigateUrl = HttpUtility.UrlEncode(hLnk.NavigateUrl);                }                else if (ctrl is LinkButton)                {                  LinkButton lButton = (LinkButton)ctrl;                   if (lButton.Text.Length > 0)                    lButton.Text = HttpUtility.HtmlEncode(lButton.Text);                }                else if (ctrl is Button)                {                  Button cButton = (Button)ctrl;                   if (cButton.Text.Length > 0)                    cButton.Text = HttpUtility.HtmlEncode(cButton.Text);                }              }            }             else             {                            // there are no controls in the table cell              // HTMLEncode any available text              if (tc.Text.Length > 0)               {                if ("&nbsp;" != tc.Text)                   tc.Text = HttpUtility.HtmlEncode(tc.Text);              }            }          }          break;                default:          break;      }     }   }...

441 الصفحة ، الفصل 16: تأمين الكمبيوتر ملقم ويب ، المقطع: تعطيل NetBIOS و SMB
http://msdn2.microsoft.com/en-us/library/aa302432.aspx

إضافة "الملاحظة التالية":

ملاحظة: اختبار التغييرات قبل تطبيق في الإنتاج. تعطيل مشاركة أو NetBIOS يمكن سلبية يؤثر الإدارة لسيناريو الخاص بك. على سبيل المثال، يستخدم IIS API NetUserChangePassword الذي يعتمد على NetBIOS. إذا سمحت للمستخدمين بتغيير كلمات المرور خلال IIS هذا لن يعد يعمل.

0-7356-1842-9 0735618429 ويب أمان التطبيق

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

خصائص

رقم الموضوع: 867600 - آخر مراجعة: 01/11/2015 06:17:42 - المراجعة: 1.4

  • MSPRESS Improving Web Application Security: Threats and Countermeasures, ISBN 0-7356-1842-9
  • kbnosurvey kbarchive kbmt kbdocfix kbdocerr KB867600 KbMtar
تعليقات