PDA

View Full Version : اشکال در security



benyamin mirzai
سه شنبه 08 آبان 1386, 20:17 عصر
سلام من با asp.net2003 , sqlserver2000 تحت VB کار می کنم می خواهم بدونم به چه صورت می توانم از نوشتن کد های html , sql , asp در textbox جلوگیری کنم ؟ برای بالا بردن security
ایا باید از تابع خاصی استفاده کنم ؟ اگر بله این تابع چیست ؟ و کی باید call شود ؟ منظورم از textbox فقط هنگام login نیست کلا برای همه textbox هایی که دارم
لطفا راهنمایی کنید

mehdi.mousavi
سه شنبه 08 آبان 1386, 20:34 عصر
سلام من با asp.net2003 , sqlserver2000 تحت VB کار می کنم می خواهم بدونم به چه صورت می توانم از نوشتن کد های html , sql , asp در textbox جلوگیری کنم ؟ برای بالا بردن security
ایا باید از تابع خاصی استفاده کنم ؟ اگر بله این تابع چیست ؟ و کی باید call شود ؟ منظورم از textbox فقط هنگام login نیست کلا برای همه textbox هایی که دارم
لطفا راهنمایی کنید


سلام.
در مباحث امنیتی، میتونیم به دو گونه با اطلاعات ورودی برخورد کنیم. اینکه بگیم

1. چطوری میشه جلوی اطلاعات وارده ناخواسته رو بگیرم.
2. اطلاعاتی که کاربر اجازه داره وارد کنه، ایناست. هر چیز دیگه ای نامعتبره.

این دو دیدگاه، ممکنه لحظه اول زیاد متفاوت به نظر نرسن، اما در واقعیت بسیار متفاوتن. تو روش اول، شما دارید دنبال ورودیهای بد میگردین، میگین asp نباشه، html نباشه، sql نباشه و و و .... خوب، مگه شما میتونید همه ورودیهای بد رو لیست کنید؟ چی میشه اگه شما یه ورودی بد رو از قلم بندازید؟

اما روش دوم، داره میگه طرف اجازه داره چی وارد کنه. خوب معلومه، یاد عدده، یا نام و نام خانوادگی هستش و ... پس میاییم تعریف میکنیم، میگیم کاربر میتواند این اطلاعات رو در این TextBox وارد کنه. بعد میتونیم بیاییم و با استفاده از Regular Expression ها، Pattern ای بنویسیم که ورودی رو محدود به اون چیزی کنه که ما صحیح میدونیم. هر چیز دیگه ای، نامعتبر حساب میشه.

اما نکته ای که باید همیشه تو ذهنتون داشته باشید، اجتناب از Dynamic SQL هاست. اگر همیشه از Stored Procedure ها استفاده کنید، دیگه لازم نیست نگران چنین مسائلی باشید، چون دیگه SQL Injection رخ نمیده.

در هر حال، همیشه به یاد داشته باشید که امنیت مثل زنجیری میمونه که میزان مقاومتش برابر تک تک حلقه های اون زنجیر هستش. اگر حلقه ای وا بشه، اونوقت زنجیر از هم پاشیده.

benyamin mirzai
سه شنبه 08 آبان 1386, 21:47 عصر
سلام دوست عزیز از راهنمایی متشکرم به نظرم استفتاده از Regular Expression جالب است ایا اگر validationExpression به این صورت +W\ باشد درست است ؟ و از ورود مثلا > جلوگیری می شود ؟

mehdi.mousavi
سه شنبه 08 آبان 1386, 22:23 عصر
سلام دوست عزیز از راهنمایی متشکرم به نظرم استفتاده از Regular Expression جالب است ایا اگر validationExpression به این صورت +W\ باشد درست است ؟ و از ورود مثلا > جلوگیری می شود ؟

\W به معنی همه کاراکترهای غیر Alphanumeric هست.
+ یعنی حداقل یک بار یا بیشتر رخ داده باشه.

در نتیجه \W+ یعنی همه کاراکترهای غیر alphanumeric (که < و > رو هم شامل میشه) که حداقل یکبار یا بیشتر رخ داده باشن. در نتیجه اگر entry رو مثلا <bad input در نظر بگیریم، اونوقت الگوی فوق یاعث Match شدن کاراکتر < و Space بین دو کلمه میشه...

حالا شما بفرمایید دنبال چی هستید، شاید بتونم کمک کنم.

benyamin mirzai
سه شنبه 08 آبان 1386, 22:37 عصر
من به دنبال این هستم که از ورود کد های html , asp,... توسط user جلوگیری کنم . شما استفاده از Regular Expression را پیشنهاد دادید می خوام از این روش برای جلوگیری از ورود کدهای بالا استفاده کنم validationExpression باید به چه صورت نوشته شود؟ مثلا برای mail می دونم چطور استفاده می شود ولی برای جلوگیری از ورود بعضی کارکتر ها نه
مثلا می خواهم از ورود ( > ) یا نوشتن (insert ) در textbox جلوگیری شود
لطفا validationexpressino مربوطه را برایم بنویسید

mehdi.mousavi
سه شنبه 08 آبان 1386, 23:26 عصر
من به دنبال این هستم که از ورود کد های html , asp,... توسط user جلوگیری کنم . شما استفاده از Regular Expression را پیشنهاد دادید می خوام از این روش برای جلوگیری از ورود کدهای بالا استفاده کنم validationExpression باید به چه صورت نوشته شود؟ مثلا برای mail می دونم چطور استفاده می شود ولی برای جلوگیری از ورود بعضی کارکتر ها نه
مثلا می خواهم از ورود ( > ) یا نوشتن (insert ) در textbox جلوگیری شود
لطفا validationexpressino مربوطه را برایم بنویسید


سلام.
الگوی زیر، علائم <، > و کلمه INSERT رو میتونه detect کنه. مهم نیست InSERt رو چطوری نوشته باشید...



(?:\b+(?i-msnx:INSERT)\b+)|(?:<|>)


البته فکر میکنم باید نقیض این Pattern رو به ValidationExpression بدیم، تا هر چی غیر این رو بتونه detect کنه. اما متاسفانه نمیدونم چطوری میشه گفت "هر چی غیر این!"

benyamin mirzai
چهارشنبه 09 آبان 1386, 08:18 صبح
اقا تا اینجاشم خیلی کمک کردی .خیلی لطف کردی دستت درد نکنه نقیضشو از بقیه دوستان می پرسم:بوس:

benyamin mirzai
چهارشنبه 09 آبان 1386, 10:21 صبح
دوست عزیز برای نقیض کردن باید از روش زیر استفاده کنیم

[(...)^]+w\

باز هم متشکرم