مشاهده نسخه کامل
: بالا بردن امنیت پسورد و فرم در php
سلام.دوستان خسته نباشید
می خواستم ببینم چطوری رمز عبور کاربر رو بصورت کد شده در دیتابیس ذخیره کنم که امنیتش حداکثر باشه؟
چون توابع MD5 و Sha1 که مثل اینکه دیگه امنیتی نداره!
چون این چند سایت رمز کد شده رو میتونه برگردونه!!!!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و...
حالا برای ذخیره رمز عبور بصورت امن چکار میشه کرد؟؟؟؟
سوال دومم این هست که برای بالا بردن فرم هایی که اطلاعات رو به این صورت ارسال میکنن ، چطور میشه امنیت رو بالاتر برد؟؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
از چه اسکریپت captcha ای استفاده کنم امن تر هست؟؟ چون بعضی از captcha ها از session استفاده نکردن!
موضوع امن کردن سایت خیلی برام مهم هست و ذهنم رو درگیر داره! لطفا کمکم کنید.:13::41:
ممنون
این سایتها از طریق دیتابیس اقدام به رمزگشایی پسوردها و نوشته های hash شده میکنن. یکی از بهترین راهها استفاده از salt هست. یعنی شما یک عبارت تصادفی رو به همراه پسورد کاریر ذخیره کنید. با اینکار امنیت پسوردهای شما تا 99.99% تضمین میشه.
اگر هم خیلی به تابع های مذکور اطمینان ندارید میتونید 2 بار اینکار رو بکنید یا با استفاده از الگوریتمهای دیگه مثل sha256 یا sha512 اقدام به hash کردن پسوردها بکنید، البته به همراه salt.
اگر خودتون میتونید یک script captcha ی مطمئن بنویسید که هیچ، در غیر اینصورت بهتون پیشنهاد میکنم از API های مثل reCAPTCHA رو برای submit کردن، استفاده کنید.
اگر میخواید یک سایت مطئن و امنی رو داشته باشید، حداقل کارهایی که میتونید برای جلوگیری از ---- شدن وبسایت خودتون انجام بدید، جلوگیری از حداقل حملاتی هست که درزیر برای شما آوردم.
SQL Injection
Session Hijacking/Fixation
XSS
CSRF
LFI/RFI
و ... که برای جلوگیری و چگونگی جلوگیری از این حملات شما رو به استفاده از google و موتورهای جستجو راهنمایی میکنم!
البته اینها فقط بخشی از حملات مورد استفاده هکرها بشمار می یاد، و تعداد حملات بیشتری هم وجود داره.
موفق باشید.
ممنونم.من دارم یه الگوریتم برای رمز کردن پسوردها و متون با php مینویسم.آیا اینطوری امنیت بیشتر نیست؟؟؟؟ مثلا من رمزها رو با الگوریتم خودم کد کنم و دوباره این رمز کد شده رو با الگوریتم salt کد کنم و برای خواندن رمز هم همین روند رو برعکس انجام بدم؟؟؟
البته الان که دارم این الگوریتم رو مینویسم خیلی کارم سخت شده.چون اگر کاربر داخل رمز خودش از کاراکتر های فارسی و انگلیسی استفاده کنه ، با الگوریتم من رمز میشه.اما اگر یه کاربر علاوه بر اینا از کاراکترهای دیگه ، مثلا کاراکترهای زبان ژاپنی و یا چینی استفاده کنه ، دیگه الگوریتم من جواب نمیده!!!
چکار کنم؟؟؟؟؟ چون کاراکتر که زیاده.اگر هر کاراکتر رو به مبنای 16 ببرم و بعد اون مبنا رو کد کنم راحت تر نیست؟؟؟؟
ممنون
mtchabok
23-04-2011, 09:44
عزیزم این یه روش رمز کردن رشته هس :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ضمن در مورد رمز عبور هیچ وقت رمز رو رمزگشایی نکن و سعی کن برای چک کردن رمز عبور ، رمزی که از کاربر میگیری رو کد کنی و بعدش کدشده اونو با رمز موجود در جدول چک کن . در مورد خیلی از رشته های کد شده دیگه هم از همین روش استفاده کن و سعی کن رشته ای که کد شده رو هیچ وقت دیکد نکنی و یا الگوریتم رو به گونه ای بنویسی که اصلا دیکد نشه .
عزیزم این یه روش رمز کردن رشته هس :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددر ضمن در مورد رمز عبور هیچ وقت رمز رو رمزگشایی نکن و سعی کن برای چک کردن رمز عبور ، رمزی که از کاربر میگیری رو کد کنی و بعدش کدشده اونو با رمز موجود در جدول چک کن . در مورد خیلی از رشته های کد شده دیگه هم از همین روش استفاده کن و سعی کن رشته ای که کد شده رو هیچ وقت دیکد نکنی و یا الگوریتم رو به گونه ای بنویسی که اصلا دیکد نشه .
واقعا ازت ممنونم.بعضی وقتا آدم از بس خودشو درگیر یه کار میکنه ، از این موضوعات غافل میشه.باز هم ممنون.:10:
اما این موضوع که خودم پسور رو با الگوریتم خودم + یه الگوریتم دیگه رمز کنم ، موافق هستید؟؟ یا میگید سایت کند میشه؟؟
ممنون
mtchabok
23-04-2011, 16:15
اگه پسورد براتون خیلی مهم هس و مسئله حیاتی هس بله ایرای نداره ولی اگه ضروری نیس بهتره از یه الگوریتم استفاده کنید .
در ضمن بهتر هس که زیاد مثل من اون قدیما روی این جور مسائل وسواسی نشین .:31:
یه الگوریتم خوب بنویسید و از همون استفاده کنین .
neopersia
23-04-2011, 22:21
برای هش کردن پسورد بهتره خودتون الگوریتم ننویسید و از روشهای موجود استفاده کنید
دلیلش هم مشخص هست! وقتی خودتون الگوریتمی برای هش کردن بنویسید و برای خودتون هم استفاده کنید هیچ تضمینی وجود نداره که این الگوریتم امن باشه و یا اینکه قابل اطمینان باشه و نتایجش با هم زیاد تداخل نداشته باشه و... چون هیچوقت به اندازه کافی و توسط افراد مختلف تست نخواهد شد.
همونطور که امین اشاره کرد سالت کردن پسورد و بعد هش کردن آن با یکی از الگوریتمهای هش موجود بهترین روشی هست که میتونید استفاده کنید
sobhdami
25-04-2011, 19:02
اگه هنوز کسی اومد و خواست از این پست استفاده کنه خودشو عزیت نکنه
راه استانداردش اینه
مثلا pass رو زمان ثبت نام کاربر از اون میگیری حال این کار رو بکنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دیگه به هیچ عنوان رمزگشایی نمیشه
ولی چطور رمز یه کاربر رو چک کنیم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینجوری اگه کسی به اطلاعات دیتابیس شما دسترسی پیدا کنه به هیچ عنوان نمیتونه رمز کاربران رو بخونه
انجمن وی بی بولتون هم از همین روش استفاهده می کنه که اگه مشکلی تو این روش میبود سه سوت -- میشد
در ضمن اون کوری رو همینجوری نذارید قبلش ورودی های غیر مجاز رو چک کنید
موفق باشید
neopersia
25-04-2011, 20:38
دوست عزیز این پستهایی که قبل از شما ارسال شده همه این روش شما رو در نظر گرفتند!
اگر دقت کرده باشید در پست اول هم دلیل امنیت پایین این روش گفته شده. اگر بدون سالت کردن پسورد ذخیره بشه امکان پیدا کردن پسورد با استفاده از دیتابیسهای موجود وجود داره
sobhdami
26-04-2011, 10:21
اگه یه عدد تصادفی کنارش اضافه بشه دیگه نمیتونه دیکدش بکنه
neopersia
26-04-2011, 14:22
اگه یه عدد تصادفی کنارش اضافه بشه دیگه نمیتونه دیکدش بکنه
شما یه کم در مورد سالت کردن پسورد سرچ کنید متوجه میشید این دو تا پستتون چطوری تکرار سه تا پست توی همین تاپیک بوده!
***
تاپیک هم منتقل شد به امنیت وب. (این شاخه ها رو که برای دکوری ایجاد نکردیم! :دی)
Mr Mohabat
11-07-2011, 12:51
یه سوال خیلی خیلی ابتدایی :
یه حکر چطوری می تونه اطلاعات دیتا بیس را بخونه که ما باید اطلاعات را هش کنیم؟
نکنه منظورتون اینه که اگه بتونه با یه کانکشن به دیتا بس وصل بشه و بخواد اطلاعات را select کنه و بخونه ....آره ؟
ممکنه به هر دلیلی (مثل لو رفتن پسورد یوزر دیتابیس) اطلاعات به دست هکر بیفته. و اگر پسورد ها هش نشده باشند، هکر به راحتی پسورد کاربران رو پیدا می کنه (چه شود اگر کاربر از یک پسورد در چندین سایت استفاده کنه)
m.m.m5651
11-08-2011, 17:51
اونوقت وقتی ما پسورد رو با یه عدد رندوم crypt کنیم هر دفعه عدد یه چیز در میاد و نمیشه دیگه استفاده کرد ازش که!
Mr Mohabat
11-08-2011, 18:04
ممکنه به هر دلیلی (مثل لو رفتن پسورد یوزر دیتابیس) اطلاعات به دست هکر بیفته. و اگر پسورد ها هش نشده باشند، هکر به راحتی پسورد کاربران رو پیدا می کنه (چه شود اگر کاربر از یک پسورد در چندین سایت استفاده کنه)
خوب با این وجود اگه اطلاعات دیتا رو بدونه دیگه نیاز نیست که بره هش ها رو بر گردونه
راحت میاد یکی از دو کار زبر رو انجام میده
1- به جای ایمیل کاربرا ایمیل خودش رو می زاره و یعد از طریق سایت قسمت فراموشی پسورد رو میزنه
اطلاعات کامل میاد تو ایمیلش
2- یه یوزر از طریق سایت می سازه مثلا با نام X و پسورد مشخص وقتی اطلاعات تو دیتا قرار گرفت
از از خارج سایت میاد پسورد یوزر خودش رو به هر کاربری که خواست جای پسوردش میزاره و از اونجایی که
پسوردش هش شده هست راحت سیستم سایت قبولش می کنه
حالا به راحتی آب خوردن می تونه هر بلایی سر دیتا و یوزراش بیاره به راحتی یک آب خوردن
واسه این کار هم راهی هست که جلوش رو بگیره ؟
خوب با این وجود اگه اطلاعات دیتا رو بدونه دیگه نیاز نیست که بره هش ها رو بر گردونه
راحت میاد یکی از دو کار زبر رو انجام میده
1- به جای ایمیل کاربرا ایمیل خودش رو می زاره و یعد از طریق سایت قسمت فراموشی پسورد رو میزنه
اطلاعات کامل میاد تو ایمیلش
2- یه یوزر از طریق سایت می سازه مثلا با نام X و پسورد مشخص وقتی اطلاعات تو دیتا قرار گرفت
از از خارج سایت میاد پسورد یوزر خودش رو به هر کاربری که خواست جای پسوردش میزاره و از اونجایی که
پسوردش هش شده هست راحت سیستم سایت قبولش می کنه
حالا به راحتی آب خوردن می تونه هر بلایی سر دیتا و یوزراش بیاره به راحتی یک آب خوردن
واسه این کار هم راهی هست که جلوش رو بگیره ؟
بله. این روش ها هم ممکن هست.
اما فرض کنید شما با همین یوزر (Mr Mohabat) و ایمیلتون (مثلا abcd@efg.com) و پسورد یکسان در چند سایت عضو هستید.
حالا یکی از این سایت ها که امنیت پایینی داره -- میشه (و یا دیتابیس میفته دست طرف) و هکر در دیتابیس یوزر نیم شما و یا ایمیل شما رو سرچ میکنه. و پسورد رو به دست میاره. حالا اگر این پسورد به درستی hash نشده باشه، کاربر کلمه ی عبور دقیق شما رو به دست میاره و در سایر سایت ها (که از امنیت بالایی هم برخوردارن) و شما با این مشخصات در اون عضو هستید به جای شما لاگین میکنه!
ضمنا ممکنه بعضی سیستم ها (دست نویس ها البته!) فراموشی رمز عبور نداشته باشند ....
m.m.m5651
11-08-2011, 19:03
یکی از روش های دیگر -- اینه:
اگر طرف از htmlentities استفاده نکرده باشه مثلا تو یه تاپیک یا توی یه فیدبک یا تماس با ما یه باگ میندازه که توی این لینک هست:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من خودم میتونم به راحتی (که هیچی از -- بلد نیستم) یه سایت مثلا این سایت رو -- کنم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.