PDA

View Full Version : سوال درمورد نیاز یا عدم نیاز به حذف بعضی کاراکترها باوجود Escape صحیح و کامل



eshpilen
جمعه 02 اردیبهشت 1390, 21:15 عصر
میگم اگر از متدهای Escape در همه جا استفاده کنیم، مثلا از mysql_real_escape_string موقع درج در دیتابیس، و از تابع htmlspecialchars موقع درج در متن صفحه، آیا بازم خطری هست؟ آیا کاراکترهای خاصی بازهم خطرناک هستن و باید کلا حذف بشن؟
مثلا وقتی کاربر کامنت میده، یا موقع انتخاب نام کاربری، آیا ضرورت داره کاراکترهای خاصی رو غیرمجاز بدونیم و حذف کنیم؟ مثلا کاراکتر نال (0x00) و امثالهم اگر هست.
موقع درج در دیتابیس که ضرری نمیزنن. ولی موقع ارسال به مرورگر حتی باوجود Escape کردن صحیح میتونن خطرناک باشن و چرا؟

پ.ن:
بعضیا میگن من خیلی ادعام میشه.
اما اگر اینطور بود که اینطور تاپیک نمیزدم و اینطور سوالات رو به اینصورت مطرح نمیکردم.
من فقط صریح هستم و یه محقق. و هیچ چیزی رو بدون دلیل و سند کافی قبول نمیکنم یا اینطور بگم که از گیر دادن بهش نمیگذرم تا واقعا بفهمم و مطمئن بشم. باید علت رو فهمید و مکانیزم رو درک کرد.
ضمنا بارها مواردی رو دیدم که ادعاها و روشهای اشتباه مطرح شدن. اگر انسان به این چیزها گیر نده و دنبال سند و دلیل نباشه، هیچوقت متوجه نقض و ضعف و اشتباه اونا نمیشه.
یادمون نره ندانستن عیب نیست. نپرسیدن عیبه. گیر دادن عیب نیست. گیر ندادن عیبه :لبخند:
صریح بودن و سمج بودن در مسائل تخصصی و علمی اونم در یه محیط مجازی چه اشکالی داره؟
سعی کنیم نازک نارنجی نباشیم و از دیگران انتظارات بیجا نداشته باشیم.
من تو یه چیزایی اطلاعات و احاطه دارم، خب دارم، تو یه چیزایی ندارم، خب میگم بلد نیستم و میام میپرسم و همفکری میکنم. از هیچکس ناراحت نمیشم بگه من بی سواد هستم. برام مهم نیست. تنها چیزی که ناراحتم میکنه اینه که راهم برای پیشرفت و قوی تر شدن بسته بشه (واسه همین وقتی فرومهایی رو که توش میتونم آزادانه با دیگران ارتباط برقرار کنم فیلتر میکنن خیلی ناراحت میشم!!).

sargardoon
شنبه 03 اردیبهشت 1390, 10:49 صبح
دوست عزیز من هم با نظر شما موافقم، این جور سوال کردنها چند فایده داره، 1. برای افرادی که خجالت میکشند بپرسند برای اینکه فکر میکنند سوالاتشون خنده داره، 2. افرادی که مشکل دارند ولی نمیدانند چطوری سوالشون را با دیگران بپرسند. در کل این انجمنها فایده اش اینه که بدون هیچ رودرواسی و خجالتی میتونی بپرسی و جواب بگیری و ما باید از به وجود آورنده های این انجمن ها و افرادی که زحمت میکشند و سعی می کنند اطلاعاتشون را با دیگران به اشتراک بگذارند اون هم بدون هیچ چشم داشتی باید هیمشه متشکر باشیم.

eshpilen
شنبه 03 اردیبهشت 1390, 10:57 صبح
در مورد سوال این تاپیک یکی از دوستان بنده که واقعا امنیت کار و نفوذگر باتجربه ای هست در فروم دیگر اینطور جواب داده:

نه کاراکترهای خاص مثل نال جاهای دیگه خطرناکن اینجا توی خروجی اچ تی ام ال چندان تاثیری ندارن... لااقل چیزی که من بدونم..

البته بخاطر تکمیل مطلب عرض کنم که من نمیگم وجود کاراکترهایی مثل نال رو در چیزهایی مثل نام کاربری اجازه بدیم. فقط میخواستم بدونم از نظر فنی خطرناک هستن یا نه.
این از نظر اختلال در کارکرد اجزای برنامه های سمت سرور و مرورگر احتمالا خطری نداره، اما اگر اینطور کاراکترها رو در چیزهایی مثل نام کاربری اجازه بدیم، مثلا یه طرفی میاد یه آدی درست میکنه مشابه آیدی بنده و فقط تهش یکی از این کاراکترها رو که احتمالا در مرورگر اصلا دیده نمیشه یا به سختی و تنها با دقت و آگاهی فنی قابل تشخیص هست اضافه میکنه. اینطوری آیدی من و اون طرف در ظاهر یکی بنظر میاد و طرف میتونه خودش رو جای من جا بزنه و مثلا برای دیگران پیام خصوصی بفرسته و وانمود کنه که از طرف من بوده و سوء استفاده کنه.
بنابراین بنظر من بعضی کاراکترها رو در چیزهایی مثل نام کاربری و موارد مشابه دیگه نباید اجازه داد.
مثلا من خودم کاراکتر New Line و Tab رو هم در نام کاربری اجازه نمیدم (اما مثلا در پسورد اجازه میدم)، چون اینا در HTML بصورت یک فاصله نشون داده میشن که اغلب در صفحات از فضای خالی و متن اطراف قابل تشخیص نیستن.

i-php-i
شنبه 03 اردیبهشت 1390, 13:37 عصر
سوال خوبی هست.

eshpilen
شنبه 03 اردیبهشت 1390, 14:05 عصر
درمورد سیاست انتخاب نام کاربردی اون دوستم که وارده اینطور میگه:

کاری که میکنی از پایه درسته ولی منطقی اینه که اگر به هویت دار بودن یکی از المانهای کاربرات مثل ای دی یا آواتار یا اینجور چیزا اهمیت میدی, باید راه حلهای سختگیرانه ای برای ثبت نام پیش بگیری نه اینکه با اتکا به فلسفه ی ایجاد هویت، برای کاربران تصور این ایجاد بشه که هویت سازی پروسه ی سختگیرانه ای داره ولی در عمل این سختگیری بر پایه ی بلک لیست باشه. یه نگاه به ثبت نام کاربری در سایتی مثل یاهو بنداز... فقط کاراکترهای خاص؛ فقط از یه رنج طول خاص فاقد هرگونه از کلمات لیست سیاه. این یه سیاست سختگیرانه است که واقعا مشابه سازی و فیشینگ هویتی رو سخت میکنه...بنظرم گفتهء ارزنده ای هست. منکه قانع شدم.
باید برای چیزهایی مثل نام کاربری یه سیاست لیست سفید بکار ببریم، نه اینکه فقط معدودی از کاراکترها رو ممنوع کنیم (سیاست لیست سیاه).

Mahdi.Spirit
شنبه 03 اردیبهشت 1390, 14:55 عصر
به نظر منم لیست سفید خیلی بهتر از لیست سیاهه