الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ في محرر tiny

بدأه -الأمل- في 21 يونيو 2011 · 16 رد · 815 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته...

استخدم محرر لإضافة تعليقات على موضوع...لما اضغط زر إضافة التعليق يظهر هذا الخطأ:

تم الكشف عن قيمة Request.Form قد تكون خطيرة من العميل (ctl00$ContentPlaceHolder1$TextBox1="<p>aslamalakam</p>").

أرجو المساعدة ..وشكراً

#2

اختي العزيزة اعملي PageVlidate ب False وان شاء الله تشتغل معاكي

Technical  Skills

  • Database
  • Microsoft SQL Server 2000/2005/2008 .
  • ADO.NET .
  • LINQ - Entity Framework
  • Oracle SQL 10G .
  • MYSQL.
  • Microsoft Access .

 

  • Web Language
  • Html5.
  • CSS3.
  • JavaScript-JQuery-Ajax
  • Web Services.
  • ASP.Net 2 , 3.5 , 4 .
  • ASP.NET MVC4
  • DevExpress 
  • Telerik
  • Php

 

  • Programming Language
  • Microsoft Visual Studio 2005 - 2008 - 2010 - 2012 
  • 4 , Microsoft C#.Net 2 , 3.5 .
  • Microsoft VB.NET.

 

 

 

Certifications

  1. University Certificate  .
  2. Deutsch A1 , A2 Certificate .
  3. Microsoft .NET Framework 2.0 - Web-based Client Development         
  4. Mastering PHP & MySQL

 

 

ERP Systems

  1. MSales
  2. Infinty

جزاكم الله كل خير

للتواصل

Email: ideal_male67@yahoo.com

Mobile : +201008265792

With My Best Wishes
Khaled Harby

-----------------------------------------------------------
اخر مواضيعي
من هنا

#3

السلام عليكم ورحمة الله وبركاته..شكراً أخي الكريم....لكن فين أحطها في webconfig ؟؟ وفين بالضبط؟

#4

وعليكم السلام ورحمه الله وبركاته

اختي العزيزة بيكون في اعلي الصفحة Properties عندك اسمها ValidateRequest اعمليها ب False وان شاء الله تشتغل وطمنيني

مثال

<%@ Page Language="C#" ValidateRequest=false Trace="false" %>

Technical  Skills

  • Database
  • Microsoft SQL Server 2000/2005/2008 .
  • ADO.NET .
  • LINQ - Entity Framework
  • Oracle SQL 10G .
  • MYSQL.
  • Microsoft Access .

 

  • Web Language
  • Html5.
  • CSS3.
  • JavaScript-JQuery-Ajax
  • Web Services.
  • ASP.Net 2 , 3.5 , 4 .
  • ASP.NET MVC4
  • DevExpress 
  • Telerik
  • Php

 

  • Programming Language
  • Microsoft Visual Studio 2005 - 2008 - 2010 - 2012 
  • 4 , Microsoft C#.Net 2 , 3.5 .
  • Microsoft VB.NET.

 

 

 

Certifications

  1. University Certificate  .
  2. Deutsch A1 , A2 Certificate .
  3. Microsoft .NET Framework 2.0 - Web-based Client Development         
  4. Mastering PHP & MySQL

 

 

ERP Systems

  1. MSales
  2. Infinty

جزاكم الله كل خير

للتواصل

Email: ideal_male67@yahoo.com

Mobile : +201008265792

With My Best Wishes
Khaled Harby

-----------------------------------------------------------
اخر مواضيعي
من هنا

#5

السلام عليكم :)

هذه الرسالة تظهر عند محاولة المستخدم إدراج وسوم (مثل وسم الفقرة كما في يظهر في الرسالة).

طبعاً إدخال مثل هذا النوع من البيانات قد يكون مفيداً إذا كنا نريد تنسيق النص.

لكن من الناحية الأمنية يجب منع هذا النوع من المحتويات حيث يعتبر مدخل إلى أبسط أنواع اختراق المواقع!!

نعم.. لم تخطئ قراءة الكلمة!

كيف؟

عن طريق تمرير أوامر مباشرة للسرفر مثل طباعة جميع معلومات المستخدمين الشخصية أو كلمة نص الاتصال الخاص بقاعدة البيانات... الخ

وأبسط مثال هو كتابة الكود التالي:

<%  MsgBox(ds.ConnectionString.ToString)%>

وظيفة هذا الكود هو إظهار نص الاتصال بقاعدة البيانات بالكامل في رسالة نصية، وهنا تكون كلمة سر قاعدة البيانات ومسارها.

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

وتقنية Asp.NET تقوم افتراضياً بمنع أي نص يحتوي بداخله على علامة الأكبر من أو الأصغر من < أو > منعاً لهذا النوع من الاستخدام، وهذا ما لا توفره البي اتش بي بشكل مباشر.

وبإلغاء هذا النوع من الحماية كما أشار الأخ C#Dev1 في رده السابق يهدد محتوى الموقع أمنياً!

أما إذا ما كان ضرورياً أن يتم إدخال هذا النوع من البيانات.. كأن يكون مقال كامل منسق بوسوم الاتش تي ام ال مثل حالة الموقع الذي نحن فيه، فهنا يجب القيام بترميز هذا النوع من الوسوم قبل إرسالها إلى السرفر، كأن يتم استبدال علامة (الأكبر من) بعلامتي $$! وعلامة (الأصغر من) تكون عكسها !$$، وعند استدعاء النص يتم عكس العملية بحيث يقوم المتصفح بتصيير الوسوم كما تم إدخالها من قبل المستخدم.

هذا للعلم..

والسلام عليكم ورحمة الله وبركاته :)

تم تعديل هذه المشاركة بواسطة AmeenSnw في 21 يونيو 2011 في 23:57

#6
C#Dev1 كتب:

وعليكم السلام ورحمه الله وبركاته

اختي العزيزة بيكون في اعلي الصفحة Properties عندك اسمها ValidateRequest اعمليها ب False وان شاء الله تشتغل وطمنيني

مثال

<%@ Page Language="C#" ValidateRequest=false Trace="false" %>

الله يجزاك خيراً أخي الكريم.... ضبط الحمدلله

#7

السلام عليكم ورحمه الله وبركاته

اختي طبعا صح ضبطت ولكن لتعلمي وليعلم الاخ C#Dev1 ان بتعطيله لهذه الخاصيه عمل ثغرة يمكن يستغلها الكثير ..

.:: Wish to become better and better ::.

#8
AmeenSnw كتب:

السلام عليكم :)

هذه الرسالة تظهر عند محاولة المستخدم إدراج وسوم (مثل وسم الفقرة كما في يظهر في الرسالة).

طبعاً إدخال مثل هذا النوع من البيانات قد يكون مفيداً إذا كنا نريد تنسيق النص.

لكن من الناحية الأمنية يجب منع هذا النوع من المحتويات حيث يعتبر مدخل إلى أبسط أنواع اختراق المواقع!!

نعم.. لم تخطئ قراءة الكلمة!

كيف؟

عن طريق تمرير أوامر مباشرة للسرفر مثل طباعة جميع معلومات المستخدمين الشخصية أو كلمة نص الاتصال الخاص بقاعدة البيانات... الخ

وأبسط مثال هو كتابة الكود التالي:

<%  MsgBox(ds.ConnectionString.ToString)%>

وظيفة هذا الكود هو إظهار نص الاتصال بقاعدة البيانات بالكامل في رسالة نصية، وهنا تكون كلمة سر قاعدة البيانات ومسارها.

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

وتقنية Asp.NET تقوم افتراضياً بمنع أي نص يحتوي بداخله على علامة الأكبر من أو الأصغر من < أو > منعاً لهذا النوع من الاستخدام، وهذا ما لا توفره البي اتش بي بشكل مباشر.

وبإلغاء هذا النوع من الحماية كما أشار الأخ C#Dev1 في رده السابق يهدد محتوى الموقع أمنياً!

أما إذا ما كان ضرورياً أن يتم إدخال هذا النوع من البيانات.. كأن يكون مقال كامل منسق بوسوم الاتش تي ام ال مثل حالة الموقع الذي نحن فيه، فهنا يجب القيام بترميز هذا النوع من الوسوم قبل إرسالها إلى السرفر، كأن يتم استبدال علامة (الأكبر من) بعلامتي $$! وعلامة (الأصغر من) تكون عكسها !$$، وعند استدعاء النص يتم عكس العملية بحيث يقوم المتصفح بتصيير الوسوم كما تم إدخالها من قبل المستخدم.

هذا للعلم..

والسلام عليكم ورحمة الله وبركاته :)

وعليكم السلام ورحمة الله وبركاته.... شكراً أخي الكريم

وبإلغاء هذا النوع من الحماية كما أشار الأخ C#Dev1 في رده السابق يهدد محتوى الموقع أمنياً! لم أفهم أن قصدك validation request إلا بعد رد vbhelper.... طيب الحل الذي ذكرته لم أفهمه ممكن توضح أكثر

VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اختي طبعا صح ضبطت ولكن لتعلمي وليعلم الاخ C#Dev1 ان بتعطيله لهذه الخاصيه عمل ثغرة يمكن يستغلها الكثير ..

وعليكم السلام ورحمة الله وبركاته...شكراً أخي الكريم ...طيب ماهو الحل؟

#9

السلام عليكم :)

الحل هو إما استبدال العلامات كما ذكرت في ردي السابق أو عدم تمرير هذا النوع من البيانات من أصله..

كما أنه قد لا تظهر أي مشكلة في تمرير التنسيقات.. لكن ماذا لو حصل السيناريو التالي:

بافتراض أن لدينا مربع نص لتسجيل اسم المستخدم، فقام المستخدم بإدخال النص التالي:

<b>علي بابا</b>

صحيح قد لا يوجد هناك مشكلة فالهدف من هذا الكود هو جعل الاسم سميكاً.

فإذا تم عرض الاسم بداخل الصفحة سيتم عرضه بشكل سميك دائماً مما قد يؤذي التنسيق العام للصفحة..

فبقية أسماء الأعضاء تظهر كما تم تنسيقها مسبقاً ما عدا هذا الأسم الذي سيبدوا مميزاً لوحده أو حتى شاذاً!

ناهيك عن استخدام وسوم الصور فيضع بدلاً من اسمه بيانات إظهار صورة أو نص متحرك باستخدام marquee أو حتى ملف فلاش بالكامل!

على العموم الحديث في مجال أمن المواقع شيق لكنه طويل.

فإن كنتم مهتمين أكثر بهذا الموضوع تستطيعون مشاحدة الدروس التالية من موقع asp.net الرسمي:

http://www.asp.net/web-forms

قسم السكيوريتي

والسلام عليكم ورحمة الله وبركاته :)

#10

وعليكم السلام ورحمة الله وبركاته....

الحل هو إما استبدال العلامات كما ذكرت في ردي السابق؟؟؟كيف يعني مافهمت .. كيف لما أمرر نص استبدل العلامات مثلاً هو نص بتسيقات...ماهي العلامات التي استبدلها وكيف؟؟

أو عدم تمرير هذا النوع من البيانات من أصله....تقصد إنه من الأفضل عدم استخدام محرر؟؟

شكراً أخي الكريم...و كيف نهتم بالأمنية...يعني هل يجب على من يبدأ في إنشاء موقع أن يتابع كيف يمكن أن يكون نظامه آمن في نفس وقت إنشاء الموقع... أو بعد عند الإنتهاء من إنشائه؟؟

#11

بالنسبة لحقول كتابة إسم المستخدم وكلمة المرور أعتقد أن Validation Control وتضعي لها نوع المدخلات فقط أحرف وتحددين طول قصير مثل 6 أحرف حد أقصى كافية

أما للمحرر فيجب أن تستبدلي أهم الرموز منها <>%&@# لأنه لا يمكن كتابة كود جافا سكربت أو غيره إلا بإستخدامها

بالنسبة لأمن الموقع

إقرأي من هنا

مميز

/index.php?showtopic=174191

/index.php?showtopic=243480&view=findpost&p=1204995

/index.php?showtopic=241342&view=findpost&p=1194444

/index.php?showtopic=235257&view=findpost&p=1166530

/index.php?showtopic=236862&view=findpost&p=1174189

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#12
KV2010 كتب:

بالنسبة لحقول كتابة إسم المستخدم وكلمة المرور أعتقد أن Validation Control وتضعي لها نوع المدخلات فقط أحرف وتحددين طول قصير مثل 6 أحرف حد أقصى كافية

أما للمحرر فيجب أن تستبدلي أهم الرموز منها <>%&@# لأنه لا يمكن كتابة كود جافا سكربت أو غيره إلا بإستخدامها

بالنسبة لأمن الموقع

إقرأي من هنا

مميز

/index.php?showtopic=174191

/index.php?showtopic=243480&view=findpost&p=1204995

/index.php?showtopic=241342&view=findpost&p=1194444

/index.php?showtopic=235257&view=findpost&p=1166530

/index.php?showtopic=236862&view=findpost&p=1174189

شكراً لك أخي الكريم..

لكن إلى الآن لم أفهم هذة النقطة:

أما للمحرر فيجب أن تستبدلي أهم الرموز منها <>%&@# لأنه لا يمكن كتابة كود جافا سكربت أو غيره إلا بإستخدامها ...المحرر كود جاهز فقط اضفته .... هذة الرموز ماامقصود بها؟؟

#13

السلام عليكم ورحمه الله وبركاته

اختي يمكنك استخدام الدالة Server.HtmlEncode لحل المشكلة واقفلي الثغرة السابقة!!

2

.:: Wish to become better and better ::.

#14

وعليكم السلام ورحمة الله وبركاته:

كتبت كدا:

cmd.Parameters.Add("@Comment_Text",Server.HtmlEncode.TextBox1.Text);

يظهر دا الخطا:

رسالة خطأ المحول البرمجي: CS0119: 'System.Web.HttpServerUtility.HtmlEncode(string)' is a 'method', which is not valid in the given context

؟؟؟

#15

السلام عليكم ورحمه الله وبركاته

اخي جربي التالي

cmd.Parameters.Add("@Comment_Text",Server.HtmlEncode(TextBox1.Text));

.:: Wish to become better and better ::.

#16

وعليكم السلام ورحمه الله وبركاته.... الحمدلله ..شكراً جزيلاً ضبط

#17

السلام عليكم ورحمه الله وبركاته

لاشكر على واجب اختي .. بالتوفيق ..

.:: Wish to become better and better ::.

مواضيع مشابهة