PDA

View Full Version : گفتگو: شناسايي كاربر



H:Shojaei
شنبه 20 خرداد 1391, 22:07 عصر
با سلام خدمت دوستان
همونطور كه از عنوان اين تاپيك معلومه ميخوايم در باره ي روشهاي شناسايي كاربر گفتگو كنيم لطفا هر كس هر چيز به نظرش ميرسه بيان كنه تا من و ديگر دوستان مبتدي هم چيزي از استادان سايت ياد بگيريم.
با تشكر♪♫

MMSHFE
شنبه 20 خرداد 1391, 22:37 عصر
لطفاً منظورتون رو از شناسایی کاربر دقیقتر بیان کنید.

رضا قربانی
شنبه 20 خرداد 1391, 23:15 عصر
می تونید آی پی - نوع مرورگر - سیستم عامل - ورژن - توع ویندوز - رنج آی پی - تاریخ ورود - اطلاعات فردی - پروکسی ست شده یا خیر - شهر و کشور و سرعت اینترنت و نسخه مرورگر - سایز صفحه نمایش کامپیوتر و و و و .... چی می خوایی ؟

H:Shojaei
شنبه 20 خرداد 1391, 23:42 عصر
لطفاً منظورتون رو از شناسایی کاربر دقیقتر بیان کنید.
روش هاي اين كه آيا كاربر وارد پنل خودش شده يا نه؟
اگه كاربر ipيش تغيير كرد تشخيص بده.
تشخيص بديم مرورگرش چي هست آيا سايت با اين مرورگر مشكلي نداره.
و...
كه همه ي اين ها رو تو اين تاپيك جمع و جور كنيم و با هم تلفيقشون كنيم تا يه كد امن و جمع و جور براي شناسايي كاربر داشته باشيم.

H:Shojaei
شنبه 20 خرداد 1391, 23:44 عصر
می تونید آی پی - نوع مرورگر - سیستم عامل - ورژن - توع ویندوز - رنج آی پی - تاریخ ورود - اطلاعات فردی - پروکسی ست شده یا خیر - شهر و کشور و سرعت اینترنت و نسخه مرورگر - سایز صفحه نمایش کامپیوتر و و و و .... چی می خوایی ؟

آره شما درست ميفرماييد ولي بايد ببينيم چجوري و كي و كجا ازشون استفاده كنيم مهمه و منظور من هم بيان همين چجوري و كي و كجاها بودن.

MostafaEs3
شنبه 27 خرداد 1391, 01:47 صبح
منم خیلی توی فکرشم .. اگه بتونی یک کد ثابت از سیستم کاربر بدست بیاری میتونی کاربر رو تشخیص بدی ... این نشد نداره . اگه دقت کنی فیسبوک یک سیستم امنیتی گذاشته که اگه فعالش کنی فقط کامپیوتر هایی که شناسایی شدن میتونن وارد بشن ..

نمیدونم چه چیزی رو از کلاینت برمیداره

H:Shojaei
یک شنبه 28 خرداد 1391, 23:36 عصر
منم خیلی توی فکرشم .. اگه بتونی یک کد ثابت از سیستم کاربر بدست بیاری میتونی کاربر رو تشخیص بدی ... این نشد نداره . اگه دقت کنی فیسبوک یک سیستم امنیتی گذاشته که اگه فعالش کنی فقط کامپیوتر هایی که شناسایی شدن میتونن وارد بشن ..

نمیدونم چه چیزی رو از کلاینت برمیداره
چطوري؟
مسئله اين است!

MostafaEs3
دوشنبه 29 خرداد 1391, 01:15 صبح
فکر کنم بر اساس یک رشته ی خاص از :
سایز صفحه نمایش
آی پی
مرورگر و سیستم عامل
کوکی خاصی که ست میکنه

مثلا اینطوری برنامه ریزی بشه که اگه کوکی وجود نداشت { اگر سایز صفحه نمایش و سیستم عامل (و اطلاعات دیگه ای که میشه درآورد) متفاوت بود و رنج آی پی فرق داشت بگه این سیستم معتبر نیست }

من فکر کنم توی نیمه ی اول تیر بتونم بنویسم همچین چیزی رو

armsoftpc
دوشنبه 29 خرداد 1391, 19:01 عصر
با سلام
دوستان که انگلیسیشون قوی هست ، توی سایت های خارجی یه سرچ بکنن، اگه به نتیجه ای رسیدند ما را هم خوبه با خبر کنند.
ممنون.

sina39000
چهارشنبه 04 بهمن 1391, 13:05 عصر
سلام به همه
توي ASP.Net يكسري توابعي انگار هست كه ميتونه Mac آدرس كارت شبكه كاربر رو نشون بده من از ASP چيزي سرم نميشه ولي كدش تو سايت هست ميخوام بدونم يعني PHP با اينهمه قدرت بالاتر از HTTP_USER_AGENT و REMOTE_ADDR چيزي نداره كه بشه باهاش بازديد كننده رو چك كرد؟

habibvafapour
پنج شنبه 05 بهمن 1391, 10:50 صبح
منم خیلی توی فکرشم .. اگه بتونی یک کد ثابت از سیستم کاربر بدست بیاری میتونی کاربر رو تشخیص بدی ... این نشد نداره . اگه دقت کنی فیسبوک یک سیستم امنیتی گذاشته که اگه فعالش کنی فقط کامپیوتر هایی که شناسایی شدن میتونن وارد بشن ..

نمیدونم چه چیزی رو از کلاینت برمیداره

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

sina39000
پنج شنبه 05 بهمن 1391, 11:04 صبح
از شركتهاي عظيمي مثل سيسكو كه توي تاريخ تجهيزات شبكه تاثير گذار بودن خيلي بعيد نيست چنين كارهايي، ولي بنده شخصا در حال حاضر شناسايي كاربر رو فقط در حدي كه يه كاربر نتونه مثلا در يك ساعت دوبار ثبت نام كنه ميخوام و استفاده از راههاي ديگه اي مثل كوكي رو هم خيلي ساده ميدونم چون منهاي امكان پاك كردن دستي كوكي ها يه كاربر عادي هم ميتونه مثلا از سه تا مرورگر مختلف استفاده كنه و تو چند ديقه سه بار ثبت نام كنه كه اين در واقع يعني هرچه رشته كرديم پنبه شده.
ممنون ميشم اگه كسي تو اين زمينه اطلاعي دار راهنمايي كنه.

habibvafapour
پنج شنبه 05 بهمن 1391, 11:14 صبح
برای این کار باید Ip سیستم طرف رو بگیری بعدش از توابع زمان در mysql استفاده کنی تا ساعت دقیق رو در اختیارت شما قرار بدهد

sina39000
پنج شنبه 05 بهمن 1391, 12:23 عصر
ممنون از جوابت
ولي اين قضيه تو شبكه هايي كه اينترنت توشون به اشتراك گذاشته ميشه منتفي هست چون تمام كاربرهاي اون شبكه با يه IP وصل ميشن.

MMSHFE
پنج شنبه 05 بهمن 1391, 18:23 عصر
با سلام، توی تاپیکی که برای «ذخیره سشن در DB بجای فایل» ایجاد کرده بودم، مثالی از روش تشخیص کاربران مختلف توسط خود PHP و تولید یک Hash مجزا برای هر کاربر با ترکیب اطلاعات Agent کاربر (OS و Browser و IP و...) گذاشته شده. جستجو کنید، پیداش میکنید. درهرحال وقتی خود PHP میتونه کاربران مختلفی رو که با یک IP ولی با سیستمهای مختلف وارد میشن، تشخیص بده، قطعاً برای Applicationهای تحت PHP هم چنین امکانی درنظر گرفته شده. موفق باشید.

eshpilen
شنبه 07 بهمن 1391, 08:19 صبح
با سلام، توی تاپیکی که برای «ذخیره سشن در DB بجای فایل» ایجاد کرده بودم، مثالی از روش تشخیص کاربران مختلف توسط خود PHP و تولید یک Hash مجزا برای هر کاربر با ترکیب اطلاعات Agent کاربر (OS و Browser و IP و...) گذاشته شده. جستجو کنید، پیداش میکنید. درهرحال وقتی خود PHP میتونه کاربران مختلفی رو که با یک IP ولی با سیستمهای مختلف وارد میشن، تشخیص بده، قطعاً برای Applicationهای تحت PHP هم چنین امکانی درنظر گرفته شده. موفق باشید.
یعنی چی PHP میتونه تشخیص بده؟
کار جداسازی درخواست ها و پاسخ هایی که از یک IP توسط کلاینت های مختلف ارسال میشن بر عهدهء NAT هست. NAT هم در سمت کلاینته. مثلا در مودم ADSL.
PHP هم صرفا درخواستها رو میگیره و جواب میده.
منتها NAT درخواست هر کلاینت رو با پورت متفاوتی ارسال میکنه. یعنی پورتی که وب سرور باید جواب رو بهش ارسال کنه. بعد این NAT هست که از روی شمارهء پورت Response تشخیص میده کدام پاسخ مال کدوم درخواست/کلاینت بوده.
PHP هم این وسط از هیچی خبر نداره اتفاقا و کار خاصی انجام نمیده.

MMSHFE
شنبه 07 بهمن 1391, 08:31 صبح
و کلا هم کار خوب و مفیدی نیست بنظر بنده که بیایم اینطور روشها رو توسعه بدیم و بصورت عمومی منتشر کنیم و در اختیار هر بی سر و پایی قرار بدیم.

بنده هم نمیدونم شما جزو افراد بی سر و پا هستید یا خیر، اما بهرحال خواستم تذکر بدم که اینطور انتظارها و اهداف و انتشار عمومی چنین مطالبی چرا صحیح نیست. و البته افراد بی سر و پا هم یکی از نشانه هاشون همینه که همش دنبال اینطور چیزها میگردن (چون میخوان از همه چیز منجمله آزادی اینترنت و قدرت برنامه نویسی سوء استفاده کنن). ولی کسی که این موضوع رو مطرح میکنه لزوما جزو این افراد نیست و ممکنه هدفش صرفا اطلاعات تخصصی، برقراری امنیت، و یا کاربرد و نیاز استثنایی خاصی باشه.
eshpilen جان فکر کنم داری یکم تند میری ها ! اعضای این تالار هیچ کدوم معادل اون لطفی که بکار بردی نیستن و قطعاً دلیل مطرح شدن چنین مواردی کنجکاوی و روشن شدن علامت سؤال بالای سرشون بوده که اون هم در اکثر موارد، دلیلش عدم آگاهی از واقعیتهای موجود در زمینه کدنویسی Server side و امکانات و اختیاراتش و همچنین سطوح دسترسی در لایه های شبکه و پروتکلهای درگیر با بحث Web Application هست. حالا باز بیا بگو شما Optimistic هستین و من Pessimistic ولی در کل، همه کسانی که توی این تالار عضو هستن و کمی سابقه دارن و حداقل یک مورد پیشینه درگیری باهات داشتن، فهمیدن که چیزی توی دلت نیست ولی برادر من، با یه لحنی صحبت کن که چهارتا تازه وارد هم که میان، به این نتیجه نرسن که توی سرت هم هیچی نیست! بهترین توصیه ها و علوم رو هم اگه با لحن تند و پرخاشگرانه بیان کنی، طرف نه تنها قبول نمیکنه، بلکه در مقابلش و در مقابلت جبهه میگیره. ناسلامتی ما مسلمان و شیعه هستیم دیگه، نه؟ قضیه معروف یاددادن وضو به پیرمرد توسط امام حسن (ع) و امام حسین (ع) که یادت نرفته؟ اگه رفته بگو تو پیام خصوصی برات بنویسم. از ائمه که با سوادتر نداریم، داریم؟ اونها با مردم عصر جاهلیت چطور برخورد میکردن؟ اونوقت ما با اطرافیانمون که شاید توی بقیه زمینه ها حتی دانششون بیشتر از ما باشه و فقط توی این یک زمینه ما بیشتر میدونیم چطور برخورد میکنیم؟
اینو اول به خودم میگم، بعد به شما و بقیه: قوانین سایت که توی امضای من هست رو بخونید و بعد تاپیک/پست ارسال کنید. نگذارین کار به استفاده از ابزارهای مدیریتی کشیده بشه.
میدونم تمهیدات مدیریتی برات مهم نیست ولی قبول کن لحن تندی داری. آهن رو هم وقتی میخوان خم کنن، اول گرمش میکنن وگرنه با فشار زیاد و یکباره، میشکنه.

MMSHFE
شنبه 07 بهمن 1391, 08:40 صبح
یعنی چی PHP میتونه تشخیص بده؟
چرا بحثها رو قاطی میکنی؟ منظور من این بود که PHP توی بخش مدیریت سشن، کاربر رو با کد هش یکتایی که براساس Agent کاربر (OS و Browser و IP و...) میسازه، شناسایی میکنه و درنتیجه هر کلاینت به سشنهای خودش فقط دسترسی داره. من هم همون الگوریتم رو که از توی سورسهای PHP متوجه شدم، توی کلاس SSSH که برای ذخیره سشن توی DB نوشتم، بکار بردم و کار میکنه و فکر میکنم همین سطح از شناسایی کاربر برای مشکل این دوستمون کافی باشه و طبق صحبتهایی که توی پست 1 این تاپیک داشتن، منظورشون همین مسئله بوده.
منظور من این بود و کاری به سمت کلاینت و NAT و این بحثها ندارم.

eshpilen
شنبه 07 بهمن 1391, 08:46 صبح
eshpilen جان فکر کنم داری یکم تند میری ها ! اعضای این تالار هیچ کدوم معادل اون لطفی که بکار بردی نیستن ...
اتفاقا چند روز پیش با یکی از اعضای فروم که در تاپیک هایی چیزهایی پرسیده بود بنا به درخواست خودش چت کردم.
میدونید انگیزش چی بود؟ میگفت میخواد سایته رو هک کنه اسم خودش رو بذاره و بعد به دوست دخترش نشون بده!!
حالا نمیگم طرف آدم بی سر و پایی بودا. نه اتفاقا بچهء خوب و صادقی بود (دلیل اینکه انگیزش رو گفت هم همین بود).
ولی خب انگیزه های خیلی ها اینطوریه. بچه هستن و بچه بازی میکنن. این اولیش نبوده که من دیدم. طرف حرف میزنه آدم دیگه میفهمه چکارس. من یکی که میفهمم. و اصلا خوشم نمیاد یه جغله بیاد از منی که سنم بیشتره و سوادم هم بیشتره واسه اهداف بچه گانه یا نامشروع خودش سوء استفاده کنه؛ این برام توهین آمیزه!

eshpilen
شنبه 07 بهمن 1391, 08:50 صبح
چرا بحثها رو قاطی میکنی؟ منظور من این بود که PHP توی بخش مدیریت سشن، کاربر رو با کد هش یکتایی که براساس Agent کاربر (OS و Browser و IP و...) میسازه، شناسایی میکنه و درنتیجه هر کلاینت به سشنهای خودش فقط دسترسی داره. من هم همون الگوریتم رو که از توی سورسهای PHP متوجه شدم، توی کلاس SSSH که برای ذخیره سشن توی DB نوشتم، بکار بردم و کار میکنه و فکر میکنم همین سطح از شناسایی کاربر برای مشکل این دوستمون کافی باشه و طبق صحبتهایی که توی پست 1 این تاپیک داشتن، منظورشون همین مسئله بوده.
منظور من این بود و کاری به سمت کلاینت و NAT و این بحثها ندارم.
فکر نمیکنم کافی باشه.
چون هدف ایشون شناسایی کاربران عادی نبوده.
هدفشون بنظرم جلوی هکرها/اسپمرها رو گرفتن بوده.
اینا هم اینطور موارد رو بلدن چطور تغییر بدن/جعل کنن. یا شاید اصلا برنامه های خودکارش باشه.

sina39000
شنبه 07 بهمن 1391, 09:15 صبح
سلام خدمت آقاي شهركي عزيز
من كلاسي كه توي تاپيك ذخيره Session در DB به جاي فايل (http://barnamenevis.org/showthread.php?286634-%D8%B0%D8%AE%D9%8A%D8%B1%D9%87-Session-%D8%AF%D8%B1-DB-%D8%A8%D9%87-%D8%AC%D8%A7%D9%8A-%D9%81%D8%A7%D9%8A%D9%84/page3) معرفي كرديد رو ديدم اين كلاس براي راحتي كار و افزايش امنيت يا جلوگيري از session fixation فوق العاده است ولي بازم معيار تشخيص AGENT هست كه شامل سه پارامتر كه به راحتي تكراري ميشن.
اما بحث Hash كردن Session_ID اين رو ميخوام بدونم آيا براي هر كاربر يه Session_ID يكتا توليد ميشه؟ يعني اگه من الان وارد يه سايت بشم بعد خارج بشم و 3 روز بعد دوباره لاگين كنم باز همون Session_ID توليد ميشه؟ آيا ممكن نيست تو همين فاصله كس ديگه اي براش همين Session_ID توليد بشه؟

MMSHFE
شنبه 07 بهمن 1391, 09:33 صبح
خیر session_id کاملاً Unique هست. حتی میتونید برای امنیت بیشتر، ()time یعنی TimeStamp زمان ورود کاربر رو توی تولید Session_ID و کد هشی که برای هر کاربر تولید میشه، دخیل کنید.

sina39000
شنبه 07 بهمن 1391, 09:52 صبح
خوب اگه اينطور باشه كه عالي ميشه اينطوري كلا بحث استفاده از IP يا Agent براي شناسايي كاربر منتفي ميشه. البته بهتره بگيم شناسايي بازديد كننده .
ممنون از جوابتون.

sina39000
شنبه 07 بهمن 1391, 10:20 صبح
البته اينم اضافه كنم با تغيير مرورگر Session_ID هم تغيير ميكنه، ولي خوب اگه بتونه تكراري بودن بازديد كننده رو تشخيص بده تا همين حدش هم مشكل منو رفع كرده.
تست ميكنم.

sina39000
شنبه 07 بهمن 1391, 11:07 صبح
نه اين راه حل مشكل من نيست.
فهرستي كه ميزارم نتيجه تست روي فايرفاكس و كروم هست Session_ID توليد شده توي فايرفاكس با هر بار حذف كوكي عوض ميشه فجيع ترين قسمتشم اينه كه حتي وقتي مرورگر رو ميبنديم و دوباره بازش ميكنيم و ميريم تو آدرس بازم Session_ID عوض ميشه. باز صد رحمت به كروم.
* Crome *
Open Page
7t4qqg5uc3i2ls4vu05j8rgjn7
Delete Cookies
7t4qqg5uc3i2ls4vu05j8rgjn7
Close and reopen
7t4qqg5uc3i2ls4vu05j8rgjn7
-----------------------------------
* FireFox *
Open Page
5i0daj6uqqs11nuh4ag0gbnj47
Delete Cookies
u5erroiibhokb3higgu2qqccd3
Delete Cookies
lkf0td9tpf7047norfaot5dco2
Close and reopen
h5tb4un55b8sok6vh1ksl83pl2

eshpilen
شنبه 07 بهمن 1391, 13:19 عصر
Session_ID توليد شده توي فايرفاكس با هر بار حذف كوكي عوض ميشه فجيع ترين قسمتشم اينه كه حتي وقتي مرورگر رو ميبنديم و دوباره بازش ميكنيم و ميريم تو آدرس بازم Session_ID عوض ميشه.
خب عوض میشه دیگه.
چون با عوامل رندوم هم تولید میشه. اون یوزرایجنت و این حرفا هم که میگن توش دخالت داره بخاطر بالا بردن آنتروپیه. وگرنه درکل سشن آیدی یک رشتهء رندومه چون حتی اگر هکر تمام مشخصات سیستم قربانی رو بدونه نباید بتونه اون رو پیشبینی کنه.
زمان هم در تولیدش نقش داره.

sina39000
شنبه 07 بهمن 1391, 14:23 عصر
آقا من میخوام بازدید کننده نشینه پشت سیستمش 10 تا نام کاربری تو سایتم باز کنه، میخوام اولی رو که ثبت کرد سر دومی سیستم جلوشو بگیره بگه الان از این سیستم ثبت نام شده تا 1 ساعت دیگه نمیتونی یا برو فردا بیا!!!
بهرحال بهش اجازه نده باید چکار کنم بخدا بدجوری گیرشم یکی کمکم کنه.

eshpilen
شنبه 07 بهمن 1391, 15:05 عصر
به نتیجه ای رسیدی خبر دادن یادت نره :لبخند:
راستی Evercookie رو که گفتم بررسی نکردی؟

siavashsay
شنبه 07 بهمن 1391, 15:54 عصر
آقا من میخوام بازدید کننده نشینه پشت سیستمش 10 تا نام کاربری تو سایتم باز کنه، میخوام اولی رو که ثبت کرد سر دومی سیستم جلوشو بگیره بگه الان از این سیستم ثبت نام شده تا 1 ساعت دیگه نمیتونی یا برو فردا بیا!!!
بهرحال بهش اجازه نده باید چکار کنم بخدا بدجوری گیرشم یکی کمکم کنه.
فک کن بشه ! محاله !
من 1 سال پیش دنبال یه همچین قضیه ای بودم نشد ! میخواستم مثلا یه سری اطلاعات ثابت کامپیوتر طرف رو بگیرم مثل Cpu Information - Motherboard و ... بع یه Hash درست کنم و اون رو چک کنم !
نشد و نمیشه ! تنهای چیزهایی که میتونی به دست بیاری و شاید کمکت کنه :
IP - OS - Display Resolotion
کوکی هم بی فایدس ! چون یا قابل حذف شدنه یا اینکه حداقل طرف باید با هر مرورگر یک بار براش یک کوکی درست شه تا بتونی چکش کنی !
ببین با اینا میتونی کاری بکنی ؟
در غیر اینصورت نمیشه ! :)
موفق باشید :)
باز