آرشیو موضوعی آموزش ها

حدیث روز

تصویر منتخب روز

کنترل های Validation در ASP.NET ( بخش اول )

بررسی و ارزیابی صحت اطلاعات ورودی توسط کاربران ، یکی از عملیات بسیار مهم در برنامه های کامپیوتری خصوصا" برنامه های وب با توجه به ماهیت معماری آنها می باشد . پیاده کنندگان برنامه های وب می بایست پس از درج داده ورودی توسط کاربر و قبل از ارسال آن به لایه های دیگر ، آنها را ارزیابی و صرفا" پس از تائید ، پردازش های مورد نیاز را بر روی آنها انجام دهند . اعتقاد عملی به سیاست فوق باعث پیشگیری تعداد زیادی از حملات در برنامه های‌ وب می گردد . در صورت عدم رعایت موارد اشاره شده ، شرایط لازم به منظور سوء استفاده از پتانسیل فوق فراهم و مهاجمان می توانند با بهره برداری از نقاط ضعف موجود ، حملات خود را برنامه ریزی نمایند . در این مقاله به بررسی امکانات ارائه شده در ASP.NET به منظور ارزیابی صحت داده ورودی خواهیم پرداخت . آشنائی و بکارگیری روش های مناسب به منظور بررسی صحت داده ورودی یکی از عملیات مهم در جهت ایمن سازی برنامه های وب نیز می باشد . پس با انگیزه و دقت مضاعف کار را دنبال می نمائیم . ضرورت و ماهیت کنترل های Validation زمانی که از یک TextBox برای درج داده بر روی‌ یک فرم استفاده می گردد ،‌ همواره این احتمال وجود خواهد داشت که کاربران اطلاعات را متناسب با انتظار یک برنامه وارد نمایند . به عنوان مثال ،‌ فرض کنید که در یک فرم وب از دو TextBox برای درج داده عددی توسط کاربران استفاده شده است و در ادامه می بایست اطلاعات ورودی در اختیار یک روتین جهت انجام پردازش های مورد نیاز ( به عنوان نمونه ، انجام عملیات محاسباتی بر روی داده های ورودی ) قرار داده شود . در صورتی که کاربران داده را در محدوده مجاز وارد ننمایند و یا ورودی از نوع عددی نباشد ، روتین مورد نظر در انجام پردازش های خود با مشکل مواجه خواهد شد . بنابراین ، می بایست همواره قبل از این که داده ورودی در اختیار روتین های مورد نظر جهت انجام پردازش های مشخص شده قرار داده شود ، آنها را بررسی و در صورت رعایت مجموعه سیاست های تعریف شده ، امکان استفاده از آنها را برای اسکریپت ها فراهم نمود . به منظور ارزیابی داده ورودی توسط کاربران با توجه به داده مورد نیاز اسکریپت ها ،‌ از روش های متعددی می توان استفاده نمود . متداولترین نیاز ، وجود یک مقدار ورودی است . در چنین مواردی ، انتظار داریم قبل از این که یک اسکریپت بتواند پردازش های مورد نیاز را بر روی داده ورودی انجام دهد، در TextBox مقداری درج شده باشد. ماهیت داده ورودی در این مقطع مهم نمی باشد و مهم این است که داده ئی توسط کاربر در مکان مورد نظر وارد شده باشد . در برخی موارد لازم است که داده ورودی از یک نوع خاص باشد ( به عنوان نمونه یک مقدار عددی ) تا بتوان آن را در اختیار روتین های مورد نظر به منظور انجام پردازش های محاسباتی قرار داد . در برخی موارد دیگر ، لازم است که داده ورودی در یک محدوده خاص باشد و داده درج شده خارج از محدوده مورد نظر ، غیرمعتبر گردد . برای بررسی و ارزیابی صحت داده در ASP.NET مجموعه ای از کنترل های validation ارائه شده است . از کنترل های فوق می توان به منظور بررسی و تست عدم درج داده ، مقایسه داده ورودی با یک مقدار خاص ، بررسی وجود مقادیر در یک محدوده خاص و سایر فرم های داده استفاده نمود تا این اطمینان ایجاد گردد که داده مناسب و معتبر در اختیار اسکریپت ها و به منظور انجام پردازش ها قرار داده می شود . کنترل های validation در ارتباط مستقیم با کنترل TextBox بوده و تست و ارزیابی خود را بطور اتوماتیک و پس از کلیک بر روی کنترل هائی نظیر Button ، LinkButton و ImageButton انجام خواهند داد . در صورتی که ماحصل بررسی یک کنترل validation توام با موفقیت نباشد ، validator یک پیام خطاء را نمایش و به کاربران اعلام می نماید که داده ورودی فاقد شرایط لازم برای استفاده در برنامه می باشد . در شکل زیر کنترل های Validation ارائه شده در ASP.NET 2.0 ،‌ نشان داده شده است .

کنترل های Validation

در ادامه به بررسی کنترل های فوق خواهیم پرداخت . کنترل asp:RequiredFieldValidator متداولترین نوع ارزیابی داده ورودی ، بررسی آن به منظور اطمینان از درج داده توسط کاربر است . کنترل asp:RequiredFieldValidator ، مسئولیت بررسی داده ورودی در یک Textbox را برعهده گرفته و در صورت عدم درج داده توسط کاربر ، یک پیام خطاء را نمایش خواهد داد . در چنین مواردی ، روتین هائی که می بایست پس از کلیک بر روی دکمه موجود از داده درج شده در TextBox استفاده نمایند ، فرصت انجام چنین کاری را به دلیل عدم درج داده توسط کاربر پیدا نخواهند کرد .