PDA

View Full Version : در پاسخ تاپیک رشته های بد 2/Bad strings 2



A B C D
جمعه 25 شهریور 1390, 14:16 عصر
اومدم این پست رو در تاپیکی که کاربر Yousha (http://barnamenevis.org/member.php?78402-Yousha) به تازگی ایجاد کرده بود بذارم که دیدم تاپیک رو حذف کرده! نمیدونم دلیل حذفش چی بوده، ولی بهرحال اگر دلیلش ناراحتی از انتقادهای بنده بوده باید بگم بهتره سعی کنیم اینقدر مغرور یا نازک نارنجی نباشیم که تا کسی ازمون ایراد گرفت و چیزی رو زیر سوال برد بخوایم رفتار غیرمنطقی از خودمون نشون بدیم.
نمیدونم شاید هم ایشون به این نتیجه رسیدن که واقعا مطالب اون تاپیک مشکلی داشتن!
بهرحال بنده مفید دیدم این پست خودم رو محض اطلاع همگی در این تاپیک درج کنم. چون فکر میکنم حرفام کاملا منطقیه و لازم و مفیده که کسی این حرفا رو بزنه. چون تاحالا چند بار مشابه چنین موارد و بحثهایی پیش اومده.

پست بنده رو در سطور زیر میتونید مطالعه بفرمایید و بگید کجاش نابجا و غیرمنطقی هست و چرا.

------------------------------------------------

ضمنا میشه بفرمایید کاراکتر سخت افزاری دقیقا چیه؟
یا اینکه میگید کاراکترهای مخفی UTF.
اصلا شما واسه اینا منبع و دلیلی هم داری؟ میتونی توضیحی بدی؟

راستی میگم کاراکترهای CPU میدونی چیه؟
کاراکترهای مخفی ZIP میدونی چیه؟
کاراکتر مخفی آپلود میدونی چیه؟
انکدینگ مخرب متد POST میدونی چیه؟

جدا میدونی؟ پس اگر نمیدونی چطور درمورد این مسائل امنیتی مطلب میدی؟

خب راستش همچین چیزایی بنام کاراکترهای CPU و کاراکترهای مخفی ZIP و غیره وجود نداره. چون من از خودم ساختم تا فقط شما رو دست به سر کنم!!
به همین سادگی، به همین خوشمزگی!

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

نه عزیزم.
کاراکتر سخت افزاری!!
کاراکترهای مخفی UTF!!
انگار ما تازه کاریم و هنوز فرق سخت افزار و نرم افزار و یونیکد و فونت و کاراکتر رو نمیدونیم!

کاراکتری مخفی نیست در UTF. فکر میکنی من نمیدونم UTF چیه و یونیکد چیه؟ بنده ساختار UTF-8 رو که میشه گفت پیچیده ترین انکدینگ در بین انواع مختلف UTF هست خیلی وقت پیش مطالعه کردم و براش تابع و رگولاراکسپرشن تهیه کردم که در سطح بایت روش کار میکنه. بنابراین کامل و دقیق فهمیدم که چیه و چه ساختاری داره و چطور کار میکنه.

استاندارد یونیکد و انکدینگ هاش یه استاندارد Open و مشخص هست. چیز قایمکی نداره!! اون چیزی که هست یا توالی بایتی خاصی هست که غیرمجازه، یا رنج Code point های غیرمجاز، رزرو شده و غیره. چیزی نیست که بخواد مخفی باشه و مثلا فقط هکرها بدونن.

البته ممکنه باگ یا ویژگی نرم افزاری چیزی درکار باشه با بعضی ترکیب های خاص، اما اونا صرفا باگ و ویژگی اون نرم افزارها هستن و کسی نیامده کاراکتری رو بخاطر کسی جایی قایم بکنه که اسمش رو میذارید کاراکتر مخفی!! اصلا این نامگذاری خودش ناشیانه هست و هیچ محتوا و دقت و اصول تخصصی و علمی توش به چشم نمیخوره. نهایت درحد اصطلاحات دم دستی یه عده میتونه باشه.

شاید هم منظور کاراکترهایی بودن که نمودنمایشی ندارن یا نمود نمایشی اونها با توالی Code point های دیگری یکسان هست.

اما من و کاربران دیگه چه میدونن از میان اینهمه امکان کدومش منظور بوده و باید دنبال کدام تحقیق و مطالعه کنن؟ مگه اینقدر وقت و انرژی زیاده و این کارا راحته که آدم بخواد همهء منابع و موارد و احتمالات رو زیر و رو کنه تا دست آخر با تصادف و غیرتصادف به نتیجه ای برسه یا نرسه؟

البته من نمیگم همه چیز رو میدونم و همه چیز به همین مواردی که من میگم محدود میشن. ولی مسلما اینقدر توان دارم و میدونم که این حق رو هرکسی داره که یه مطلب رو که به این شکل ارائه میشه بتونه زیر سوال ببره. هرکسی این حق رو داره. اونی که اینطور مطلب میذاره و میگه شما نمیدونی و نمیفهمی و چیکار داری همینطوری استفاده کن، خودشه که داره حرف غیرمنطقی و ناشیانه میزنه. غیر از اینه؟ چرا قضیه برعکس شده؟ ما کار اشتباهی نکردیم و ادعای بیجایی نکردیم و چیز بیجایی نگفتیم و نخواستیم، بعکس این شمایید که چیزهای غیرمنطقی میگید. دلایلش رو هم در بالا گفتم و فکر میکنم ساده تر و بدیهی تر از این حرفهاست که کسی نتونه بفهمه.

شایدم بنظر شما یه چیزی غیرقابل درک و دور از دسترسه، اما فرض نکن برای همه همینطوره. شما چه میدونی طرفت چیکارس و چکار میتونه بکنه و چکار نمیتونه بکنه؟ اگر هم خودت درمورد یه چیزی اطلاعات کافی نداری با صداقت بگو من خودم جزییاتش رو نمیدونم. البته این مسلما به این نتیجه ختم میشه که پس روش و کدت رو از کجا آوردی و چطور نسبت بهش اعتماد کافی داری.

من نمیگم اینا لزوما غلطه، اصلا اونش چیزی نیست که بنده بهش گیر دادم، اما روش ارائه و بیان سراسر مشکل داره. از اساس ناقص و بی اعتباره.
شما و دیگران باید اول بدونن اصلا صحبت دقیقا از چی هست و کجا چطوری دنبالش بگردن. وگرنه دیگه هیچ اطلاعاتی قابل پیگیری و اثبات نیست.

منابع تخصصی و رسمی امنیتی اگر مطلبی میدن توضیح و حداقل سرنخ و منبع و اصطلاح دقیق براش میدن. طوری که طرف میتونه همون موقع که میخونه فکر کنه و طرز کار و ماهیت موارد درگیر رو متوجه بشه (البته به شرطی که دانش و مهارت پایه لازم رو داشته باشه)، یا اینکه حداقل میتونه از همونجا شروع به تحقیق کنه و میدونه باید دنبال چه منابع و کیوردهایی بگرده و اون مطلب در کدوم حیطه هست و غیره. بطور مثال مطالب این سایت رو نگاهی بکن: www.owasp.org (http://www.owasp.org) (بنده قبلا همش رو خوندم).

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

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

A B C D
جمعه 25 شهریور 1390, 14:47 عصر
والا منکه اصلا ناراحت نمیشم کسی بیاد مطالبی رو که ارائه میکنم زیر سوال ببره. این کاملا طبیعی و حق هر فردی هست. اصلا بیاید سواد منو هم زیر سوال ببرید، با اینکه زیاد مرتبط و مفید نمیدونم ولی بازهم این رو توهین نمیدونم و فکر میکنم هرکسی حق داره موردی رو که میخواد زیر سوال ببره (حالا بحث مرتبط و مفید بودنش واسه مراحل بعد هست). این فروم مال منکه نیست، و منم حق جلوی دهن دیگران رو گرفتن رو ندارم. اصلا بخش اساسی ای از ساختار و دستاوردهای جامعه و علم و واقعیت همینطوری هست که شکل میگیره و مستحکم میشه. با بحث و موافق و مخالف و ایرادگیر و طرفدار. مثل یک دادگاه که باید وکیل و قاضی و دادستان داشته باشه که درظاهر (و شاید همچنین در باطن) بر علیه همدیگر فعالیت میکنن، اما این فعالیت و تقابل ها برای برقراری عدالت و کمتر شدن اشتباهات و افراط و تفریط لازمه. یک نفر نمیتونه همهء نقشها رو به تنهایی ایفا کنه. یک نفر کافی نیست. نمیشه همه موافق باشن یا همه مخالف. باید بحث و تحلیل و برخورد آزاد وجود داشته باشه تا همه چیز روشن و پخته بشه.

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

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

البته ببخشید بنده این حرفا رو کلی میزنم و کاری به شخص خاصی ندارم. با کاربر Yousha (http://barnamenevis.org/member.php?78402-Yousha) مشکلی نداشتم و داشتیم تبادل نظر میکردیم، اما نمیدونم چرا ایشون یه دفه تاپیکشون رو حذف کردن! انگار ناراحت شدن از اینکه بنده توضیح و دلیل بیشتری برای روشن شدن روش و کدهای ایشون خواستم. چون ایشون فرمودن شما چکار دارید همینطوری استفاده کنید!!