با سلام خدمت دوستان
همونطور كه از عنوان اين تاپيك معلومه ميخوايم در باره ي روشهاي شناسايي كاربر گفتگو كنيم لطفا هر كس هر چيز به نظرش ميرسه بيان كنه تا من و ديگر دوستان مبتدي هم چيزي از استادان سايت ياد بگيريم.
با تشكر♪♫
با سلام خدمت دوستان
همونطور كه از عنوان اين تاپيك معلومه ميخوايم در باره ي روشهاي شناسايي كاربر گفتگو كنيم لطفا هر كس هر چيز به نظرش ميرسه بيان كنه تا من و ديگر دوستان مبتدي هم چيزي از استادان سايت ياد بگيريم.
با تشكر♪♫
لطفاً منظورتون رو از شناسایی کاربر دقیقتر بیان کنید.
می تونید آی پی - نوع مرورگر - سیستم عامل - ورژن - توع ویندوز - رنج آی پی - تاریخ ورود - اطلاعات فردی - پروکسی ست شده یا خیر - شهر و کشور و سرعت اینترنت و نسخه مرورگر - سایز صفحه نمایش کامپیوتر و و و و .... چی می خوایی ؟
روش هاي اين كه آيا كاربر وارد پنل خودش شده يا نه؟
اگه كاربر ipيش تغيير كرد تشخيص بده.
تشخيص بديم مرورگرش چي هست آيا سايت با اين مرورگر مشكلي نداره.
و...
كه همه ي اين ها رو تو اين تاپيك جمع و جور كنيم و با هم تلفيقشون كنيم تا يه كد امن و جمع و جور براي شناسايي كاربر داشته باشيم.
منم خیلی توی فکرشم .. اگه بتونی یک کد ثابت از سیستم کاربر بدست بیاری میتونی کاربر رو تشخیص بدی ... این نشد نداره . اگه دقت کنی فیسبوک یک سیستم امنیتی گذاشته که اگه فعالش کنی فقط کامپیوتر هایی که شناسایی شدن میتونن وارد بشن ..
نمیدونم چه چیزی رو از کلاینت برمیداره
فکر کنم بر اساس یک رشته ی خاص از :
سایز صفحه نمایش
آی پی
مرورگر و سیستم عامل
کوکی خاصی که ست میکنه
مثلا اینطوری برنامه ریزی بشه که اگه کوکی وجود نداشت { اگر سایز صفحه نمایش و سیستم عامل (و اطلاعات دیگه ای که میشه درآورد) متفاوت بود و رنج آی پی فرق داشت بگه این سیستم معتبر نیست }
من فکر کنم توی نیمه ی اول تیر بتونم بنویسم همچین چیزی رو
با سلام
دوستان که انگلیسیشون قوی هست ، توی سایت های خارجی یه سرچ بکنن، اگه به نتیجه ای رسیدند ما را هم خوبه با خبر کنند.
ممنون.
سلام به همه
توي ASP.Net يكسري توابعي انگار هست كه ميتونه Mac آدرس كارت شبكه كاربر رو نشون بده من از ASP چيزي سرم نميشه ولي كدش تو سايت هست ميخوام بدونم يعني PHP با اينهمه قدرت بالاتر از HTTP_USER_AGENT و REMOTE_ADDR چيزي نداره كه بشه باهاش بازديد كننده رو چك كرد؟
راسیاتش حرفه من هم در زمینه سیسکو هست تو بانک ها که میرم میبینم حتی اطلاعات سخت افزاری فرد مقابل رو بدست میارن
مثل سریال هارد ، سریال مادربرد و حتی مک آدرس مودم کانکت شده این جور چیزا رو خود سیسکو میتونه تشخیص بده و امنیت رو برقرار کنه ولی این اطلاعات رو نمیتونه در اختیار سیستم عاملی بزاره چون خودش سیستم عامل خودش رو داره و با سیستم عاملهای دیگر ارتباط برقرار نمیکنه
برای من هم جالب هست بدونم چه جوری میشه اطلاعات سخت افزاری یک سیستم رو بدست آورد
از شركتهاي عظيمي مثل سيسكو كه توي تاريخ تجهيزات شبكه تاثير گذار بودن خيلي بعيد نيست چنين كارهايي، ولي بنده شخصا در حال حاضر شناسايي كاربر رو فقط در حدي كه يه كاربر نتونه مثلا در يك ساعت دوبار ثبت نام كنه ميخوام و استفاده از راههاي ديگه اي مثل كوكي رو هم خيلي ساده ميدونم چون منهاي امكان پاك كردن دستي كوكي ها يه كاربر عادي هم ميتونه مثلا از سه تا مرورگر مختلف استفاده كنه و تو چند ديقه سه بار ثبت نام كنه كه اين در واقع يعني هرچه رشته كرديم پنبه شده.
ممنون ميشم اگه كسي تو اين زمينه اطلاعي دار راهنمايي كنه.
برای این کار باید Ip سیستم طرف رو بگیری بعدش از توابع زمان در mysql استفاده کنی تا ساعت دقیق رو در اختیارت شما قرار بدهد
ممنون از جوابت
ولي اين قضيه تو شبكه هايي كه اينترنت توشون به اشتراك گذاشته ميشه منتفي هست چون تمام كاربرهاي اون شبكه با يه IP وصل ميشن.
با سلام، توی تاپیکی که برای «ذخیره سشن در DB بجای فایل» ایجاد کرده بودم، مثالی از روش تشخیص کاربران مختلف توسط خود PHP و تولید یک Hash مجزا برای هر کاربر با ترکیب اطلاعات Agent کاربر (OS و Browser و IP و...) گذاشته شده. جستجو کنید، پیداش میکنید. درهرحال وقتی خود PHP میتونه کاربران مختلفی رو که با یک IP ولی با سیستمهای مختلف وارد میشن، تشخیص بده، قطعاً برای Applicationهای تحت PHP هم چنین امکانی درنظر گرفته شده. موفق باشید.
یعنی چی PHP میتونه تشخیص بده؟
کار جداسازی درخواست ها و پاسخ هایی که از یک IP توسط کلاینت های مختلف ارسال میشن بر عهدهء NAT هست. NAT هم در سمت کلاینته. مثلا در مودم ADSL.
PHP هم صرفا درخواستها رو میگیره و جواب میده.
منتها NAT درخواست هر کلاینت رو با پورت متفاوتی ارسال میکنه. یعنی پورتی که وب سرور باید جواب رو بهش ارسال کنه. بعد این NAT هست که از روی شمارهء پورت Response تشخیص میده کدام پاسخ مال کدوم درخواست/کلاینت بوده.
PHP هم این وسط از هیچی خبر نداره اتفاقا و کار خاصی انجام نمیده.
eshpilen جان فکر کنم داری یکم تند میری ها ! اعضای این تالار هیچ کدوم معادل اون لطفی که بکار بردی نیستن و قطعاً دلیل مطرح شدن چنین مواردی کنجکاوی و روشن شدن علامت سؤال بالای سرشون بوده که اون هم در اکثر موارد، دلیلش عدم آگاهی از واقعیتهای موجود در زمینه کدنویسی Server side و امکانات و اختیاراتش و همچنین سطوح دسترسی در لایه های شبکه و پروتکلهای درگیر با بحث Web Application هست. حالا باز بیا بگو شما Optimistic هستین و من Pessimistic ولی در کل، همه کسانی که توی این تالار عضو هستن و کمی سابقه دارن و حداقل یک مورد پیشینه درگیری باهات داشتن، فهمیدن که چیزی توی دلت نیست ولی برادر من، با یه لحنی صحبت کن که چهارتا تازه وارد هم که میان، به این نتیجه نرسن که توی سرت هم هیچی نیست! بهترین توصیه ها و علوم رو هم اگه با لحن تند و پرخاشگرانه بیان کنی، طرف نه تنها قبول نمیکنه، بلکه در مقابلش و در مقابلت جبهه میگیره. ناسلامتی ما مسلمان و شیعه هستیم دیگه، نه؟ قضیه معروف یاددادن وضو به پیرمرد توسط امام حسن (ع) و امام حسین (ع) که یادت نرفته؟ اگه رفته بگو تو پیام خصوصی برات بنویسم. از ائمه که با سوادتر نداریم، داریم؟ اونها با مردم عصر جاهلیت چطور برخورد میکردن؟ اونوقت ما با اطرافیانمون که شاید توی بقیه زمینه ها حتی دانششون بیشتر از ما باشه و فقط توی این یک زمینه ما بیشتر میدونیم چطور برخورد میکنیم؟
اینو اول به خودم میگم، بعد به شما و بقیه: قوانین سایت که توی امضای من هست رو بخونید و بعد تاپیک/پست ارسال کنید. نگذارین کار به استفاده از ابزارهای مدیریتی کشیده بشه.
میدونم تمهیدات مدیریتی برات مهم نیست ولی قبول کن لحن تندی داری. آهن رو هم وقتی میخوان خم کنن، اول گرمش میکنن وگرنه با فشار زیاد و یکباره، میشکنه.
چرا بحثها رو قاطی میکنی؟ منظور من این بود که PHP توی بخش مدیریت سشن، کاربر رو با کد هش یکتایی که براساس Agent کاربر (OS و Browser و IP و...) میسازه، شناسایی میکنه و درنتیجه هر کلاینت به سشنهای خودش فقط دسترسی داره. من هم همون الگوریتم رو که از توی سورسهای PHP متوجه شدم، توی کلاس SSSH که برای ذخیره سشن توی DB نوشتم، بکار بردم و کار میکنه و فکر میکنم همین سطح از شناسایی کاربر برای مشکل این دوستمون کافی باشه و طبق صحبتهایی که توی پست 1 این تاپیک داشتن، منظورشون همین مسئله بوده.
منظور من این بود و کاری به سمت کلاینت و NAT و این بحثها ندارم.
اتفاقا چند روز پیش با یکی از اعضای فروم که در تاپیک هایی چیزهایی پرسیده بود بنا به درخواست خودش چت کردم.
میدونید انگیزش چی بود؟ میگفت میخواد سایته رو هک کنه اسم خودش رو بذاره و بعد به دوست دخترش نشون بده!!
حالا نمیگم طرف آدم بی سر و پایی بودا. نه اتفاقا بچهء خوب و صادقی بود (دلیل اینکه انگیزش رو گفت هم همین بود).
ولی خب انگیزه های خیلی ها اینطوریه. بچه هستن و بچه بازی میکنن. این اولیش نبوده که من دیدم. طرف حرف میزنه آدم دیگه میفهمه چکارس. من یکی که میفهمم. و اصلا خوشم نمیاد یه جغله بیاد از منی که سنم بیشتره و سوادم هم بیشتره واسه اهداف بچه گانه یا نامشروع خودش سوء استفاده کنه؛ این برام توهین آمیزه!
سلام خدمت آقاي شهركي عزيز
من كلاسي كه توي تاپيك ذخيره Session در DB به جاي فايل معرفي كرديد رو ديدم اين كلاس براي راحتي كار و افزايش امنيت يا جلوگيري از session fixation فوق العاده است ولي بازم معيار تشخيص AGENT هست كه شامل سه پارامتر كه به راحتي تكراري ميشن.
اما بحث Hash كردن Session_ID اين رو ميخوام بدونم آيا براي هر كاربر يه Session_ID يكتا توليد ميشه؟ يعني اگه من الان وارد يه سايت بشم بعد خارج بشم و 3 روز بعد دوباره لاگين كنم باز همون Session_ID توليد ميشه؟ آيا ممكن نيست تو همين فاصله كس ديگه اي براش همين Session_ID توليد بشه؟
خیر session_id کاملاً Unique هست. حتی میتونید برای امنیت بیشتر، ()time یعنی TimeStamp زمان ورود کاربر رو توی تولید Session_ID و کد هشی که برای هر کاربر تولید میشه، دخیل کنید.
خوب اگه اينطور باشه كه عالي ميشه اينطوري كلا بحث استفاده از IP يا Agent براي شناسايي كاربر منتفي ميشه. البته بهتره بگيم شناسايي بازديد كننده .
ممنون از جوابتون.
آخرین ویرایش به وسیله sina39000 : شنبه 07 بهمن 1391 در 10:30 صبح
البته اينم اضافه كنم با تغيير مرورگر Session_ID هم تغيير ميكنه، ولي خوب اگه بتونه تكراري بودن بازديد كننده رو تشخيص بده تا همين حدش هم مشكل منو رفع كرده.
تست ميكنم.
آخرین ویرایش به وسیله sina39000 : شنبه 07 بهمن 1391 در 10:35 صبح
نه اين راه حل مشكل من نيست.
فهرستي كه ميزارم نتيجه تست روي فايرفاكس و كروم هست 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
آقا من میخوام بازدید کننده نشینه پشت سیستمش 10 تا نام کاربری تو سایتم باز کنه، میخوام اولی رو که ثبت کرد سر دومی سیستم جلوشو بگیره بگه الان از این سیستم ثبت نام شده تا 1 ساعت دیگه نمیتونی یا برو فردا بیا!!!
بهرحال بهش اجازه نده باید چکار کنم بخدا بدجوری گیرشم یکی کمکم کنه.
به نتیجه ای رسیدی خبر دادن یادت نره
راستی Evercookie رو که گفتم بررسی نکردی؟
فک کن بشه ! محاله !
من 1 سال پیش دنبال یه همچین قضیه ای بودم نشد ! میخواستم مثلا یه سری اطلاعات ثابت کامپیوتر طرف رو بگیرم مثل Cpu Information - Motherboard و ... بع یه Hash درست کنم و اون رو چک کنم !
نشد و نمیشه ! تنهای چیزهایی که میتونی به دست بیاری و شاید کمکت کنه :
IP - OS - Display Resolotion
کوکی هم بی فایدس ! چون یا قابل حذف شدنه یا اینکه حداقل طرف باید با هر مرورگر یک بار براش یک کوکی درست شه تا بتونی چکش کنی !
ببین با اینا میتونی کاری بکنی ؟
در غیر اینصورت نمیشه ! :)
موفق باشید :)
باز