PDA

نسخه کامل مشاهده نسخه کامل : سوال:امنيت پسورد در php



mb1372
23-08-2011, 16:02
سلام.چند سوال در مورد امنيت پسورد داشتم:46::
1- اگر پسوردي كه فقط توي فايل php ريختم(و ارتباطي با بانك اطلاعاتي نداره) رو هش نكنم چي ميشه؟
2- اگر سرور درست كار كنه امكان داره كد php رو كه نوشتم كسي بتونه بخونه؟اگه سرور از كار بيفته چي؟
3- هر چي سرچ كردم نتونستم توضيح كامل روش سالت كردن پسورد رو پيدا كنم.اگه ميشه آدرسشو بگين يا تو همين جا بذارين.:10:چطوري ميشه با روش سالت درستي پسورد رو تشخيص داد؟(آخه اين كه تصادفيه:19:)

m.m.m5651
23-08-2011, 16:21
1) چیزی نمیشه، فقط کاربران می تونن با وارد کردن آدرس فایل، بازش کنن و محتواش رو بخونن :دی
2) سرور از کار بیفته بستگی داره. مثلا من خودم بدون این که php رو نصب کنم، اومدم و فایلم رو باز باز کردم. تمام کد هاش رو ریخت بیرون!
3) شما باید در تابع crypt دومین پارامتر رو هم پر کنید. من خودم از تابع sha1 استفاده می کنم. تصادفی و رندوم هم نیست این جوری.

mb1372
23-08-2011, 16:41
تشكر از جوابتون(دكمه تشكر ندارم هنوز!:31:يا هم پيداش نكردم!)
فقط يه چيزي:
اگه سرور كار كنه هم ميشه فايل رو باز كرد و خوند؟!اين جوري كه كار برنامه نويس بد بخت رو ميشه:2:(حتي اگ پسورد رو هم توش نذاريم بازم خيلي بده)
راستي يه سايتي پيدا شده بود sha1 رو ديكد مي كرد.نمي دونم درست بود يا نه؟روش ديگه اي نيست.
نميشه خودمون هش ش كنيم؟بعد اگه كرديم اين كد هش كردنو كجا بذاريم تا دست هكر بهش نرسه؟؟:13:

MaSoUd555
23-08-2011, 16:55
دوست عزیز

اول اینکه سوال اولتون گنگه!!!یعنی چی پسوردی که توی فایل هستش رو هش نکنید ؟ (اگه این پسورد برای ارتباط با بانک اطلاعاتیه که اصلا نباید هش بشه!!!)اما اگه دلیل دیگه ای داره چرا اینکارو کردید؟

در مورد سوال 2 هم بگم یعنی چی سرور از کار بیفته ؟:31:خب اگه از کار بیفته که تمامی فایل ها غیر قابل دسترسند:31:
مورد دیگه اینکه فایل های PHP سمت سرور ترجمه مشند و به مرورگر فرستاده میشند اگه درست استفاده کنید هیچکی نمیتونه بخونتشون

در مورد سومی هم بگم شما میتونید یه الگوریتم برای خودتون بسازید مثلا 10 حرف اول پسورد هش شده رو جدا کنید و با یه عبارت از خودتون جمع کنید بعدش توی دیتابیس ذخیره کنید یا روش های دیگه(سرچ کنید حتما به مطالب زیادی برخورد میکنید)
اینم یه نمونه از سرچ :31:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



بعد اینکه هش دیکد نمیشه ، این الگوریتم ها یک طرفه هستند و هیچ راهی برای برگردوندن واژه ی اصلی نیست مگر مقایسه

mb1372
23-08-2011, 17:06
دوست عزیز

اول اینکه سوال اولتون گنگه!!!یعنی چی پسوردی که توی فایل هستش رو هش نکنید ؟ (اگه این پسورد برای ارتباط با بانک اطلاعاتیه که اصلا نباید هش بشه!!!)اما اگه دلیل دیگه ای داره چرا اینکارو کردید؟

در مورد سوال 2 هم بگم یعنی چی سرور از کار بیفته ؟:31:خب اگه از کار بیفته که تمامی فایل ها غیر قابل دسترسند:31:
مورد دیگه اینکه فایل های PHP سمت سرور ترجمه مشند و به مرورگر فرستاده میشند اگه درست استفاده کنید هیچکی نمیتونه بخونتشون

در مورد سومی هم بگم شما میتونید یه الگوریتم برای خودتون بسازید مثلا 10 حرف اول پسورد هش شده رو جدا کنید و با یه عبارت از خودتون جمع کنید بعدش توی دیتابیس ذخیره کنید یا روش های دیگه(سرچ کنید حتما به مطالب زیادی برخورد میکنید)
اینم یه نمونه از سرچ :31:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




بعد اینکه هش دیکد نمیشه ، این الگوریتم ها یک طرفه هستند و هیچ راهی برای برگردوندن واژه ی اصلی نیست مگر مقایسه




1)مشخصه ديگه!يعني مي خام كه پسورد روبريزم توي خود صفحه اصلي php! نه اينكه توي يه بانك اطلاعاتي.دليلشم اينه كه نمي خام زياد زحمت بكشم هش كنمش! بعدشم اگه اين طور كه شما گفتي باشه يعني نشه فايل php رو خوند ديگه چه لزومي داره هش كنم؟
2)منظورم از سرور اجرا كننده phpرو سرور هست.اگه از كار بيفته باز هم نميشه فايل php رو دانلود كرد وخوند؟
3)خوب اگه فايل php قابل دسترسي نباشه خوبه.وگرنه اين كد رو تو كجا بذاريم.
***مگه نمي شه آدرس فايل php رو به دانلود ميجر بديم تا بگيره؟م كه يه بار امتحان كردم شد:18:

m.m.m5651
23-08-2011, 17:13
در مورد سوال دوم:
صفحه های پی اچ پی فقط به صورت خروجی هستن که مثلا فانکشن mysql_query یا mysql_connect توشون نیست! دقیقا همون فایلی که شما نوشتین نیست که! فقط به صورت خروجیه.
مثلا یه while loop دارین صد بار می نویسه سلام، سرور نمیاد کد while رو بده به مرورگر که! فقط 100 بار می نویسه سلام توی یه صفحه و توی سورس صفحه هم نوشته صد بار سلام!
متوجه شدین؟

MaSoUd555
23-08-2011, 17:20
1)مشخصه ديگه!يعني مي خام كه پسورد روبريزم توي خود صفحه اصلي php! نه اينكه توي يه بانك اطلاعاتي.دليلشم اينه كه نمي خام زياد زحمت بكشم هش كنمش! بعدشم اگه اين طور كه شما گفتي باشه يعني نشه فايل php رو خوند ديگه چه لزومي داره هش كنم؟
2)منظورم از سرور اجرا كننده phpرو سرور هست.اگه از كار بيفته باز هم نميشه فايل php رو دانلود كرد وخوند؟
3)خوب اگه فايل php قابل دسترسي نباشه خوبه.وگرنه اين كد رو تو كجا بذاريم.
***مگه نمي شه آدرس فايل php رو به دانلود ميجر بديم تا بگيره؟م كه يه بار امتحان كردم شد:18:

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

در مورد مشکل بعدی هم بگم میشه دسترسی به فولدر ها یا فایل های خاصی رو توسط وب سرور معین کرد ، مثلا اگه از وب سرور Apache استفاده کنید میتونید با استفاده از فایل htaccess دسترسی یک فایل رو فقط برای localhost بذارید

mb1372
23-08-2011, 17:28
در مورد سوال دوم:
صفحه های پی اچ پی فقط به صورت خروجی هستن که مثلا فانکشن mysql_query یا mysql_connect توشون نیست! دقیقا همون فایلی که شما نوشتین نیست که! فقط به صورت خروجیه.
مثلا یه while loop دارین صد بار می نویسه سلام، سرور نمیاد کد while رو بده به مرورگر که! فقط 100 بار می نویسه سلام توی یه صفحه و توی سورس صفحه هم نوشته صد بار سلام!
متوجه شدین؟
راستش اينو كه ميدونستم
منظورتون اينه كه وقتي آدرس رو به همراه *.php ميدي به دانلود منيجر ، مياد فايل رو باز مي كنه بعد به صورت فايل html ذخيره مي كنه؟


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

در مورد مشکل بعدی هم بگم میشه دسترسی به فولدر ها یا فایل های خاصی رو توسط وب سرور معین کرد ، مثلا اگه از وب سرور Apache استفاده کنید میتونید با استفاده از فایل htaccess دسترسی یک فایل رو فقط برای localhost بذارید
در اين مورد كه گفتم كاري به بانك الاعاتي ندارم.مي خام يه پسورد براي باز شدن صفحه بگذارم.اگر فايل php قابل دسترسي نباشه پسوردي كه براش تعريف شده قابل ديدن نيست و نيازي بههش كردن نمي باشد!درسته؟

MaSoUd555
23-08-2011, 17:31
در اين مورد كه گفتم كاري به بانك الاعاتي ندارم.مي خام يه پسورد براي باز شدن صفحه بگذارم.اگر فايل php قابل دسترسي نباشه پسوردي كه براش تعريف شده قابل ديدن نيست و نيازي بههش كردن نمي باشد!درسته؟

درسته........

m.m.m5651
23-08-2011, 17:44
راستش اينو كه ميدونستم
منظورتون اينه كه وقتي آدرس رو به همراه *.php ميدي به دانلود منيجر ، مياد فايل رو باز مي كنه بعد به صورت فايل html ذخيره مي كنه؟

محتویات فایل html رو با پسوند php ذخیره می کنه.

as13851365
23-08-2011, 18:51
هیچ دستور php ای اگه خودتون نخواهید به مرورگر کاربران فرستاده نمی شه و در نتیجه هیچ کد php ای رو کاربران نمی تونند ( با هر روشی که سعی کنند {بحث نفوذ و -- جداست} نمی تونند یک فایل php رو دانلود کنند.

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

hasanak852
23-08-2011, 21:19
1) چیزی نمیشه، فقط کاربران می تونن با وارد کردن آدرس فایل، بازش کنن و محتواش رو بخونن :دی
چرا اطلاعات غلط دست مردم میدین؟:13:
آدرس فایل پی اچ پی که بدین سرور ترجمه میکنه بعد میده بیرون و اصلا کسی نمیتونه محتواش رو بخونه (مگر -- کنن)

در مورد هش: برای اینکه روش بروت فورس یا همون تکرار مقایسه کار نکنه میتونین اینجوری ازش استفاده کنین:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

m.m.m5651
24-08-2011, 16:53
ببخشید من فکر کردم یعنی بخواین با echo بندازینش روی صفحه!
حالا بستگی داره بخواین چیکار کنین با اون رمز درون فایل.

mb1372
30-08-2011, 18:30
هیچ دستور php ای اگه خودتون نخواهید به مرورگر کاربران فرستاده نمی شه و در نتیجه هیچ کد php ای رو کاربران نمی تونند ( با هر روشی که سعی کنند {بحث نفوذ و -- جداست} نمی تونند یک فایل php رو دانلود کنند.

برای نگه داشتن پسورد در داخل فایل هم به راحتی می تونید یک متغییر تعریف کرده و پسورد مورد نظر را داخل آن قرار دهید و در داخل فایل از آن استفاده کنید ( جدا از بحث متغییرهای سراسری و خصوصی و ...)
حتي اگه سرور apachi (اجرا كننده فايل php) از كار بيفته بازم نمي شهخ دانلود كرد؟

MaSoUd555
30-08-2011, 19:22
حتي اگه سرور apachi (اجرا كننده فايل php) از كار بيفته بازم نمي شهخ دانلود كرد؟

سلام دوست عزیز گفتم که در این صورت میشه (یعنی امتحان کردم واقعا فایل PHP دانلود میشه!!!) منتها باید دسترسی به فایل را محدود کنید حالا یا با سطح دسترسی ها سیستم عامل یا وب سرور ، چون فقط با Apache کار کردم مطمئنم که میشه با فایل htaccess این کار رو انجام داد :31:
شما پسورد رو توی یک فایل توی یک متغیر بنویسید بعدش دسترسی برای اون فایل رو فقط برای لوکال هاست بذارید ، بعدش بیاید توی ایندکستون انکلودشون کنید اینجوری دیگه فقط index در دسترسه بقیه فقط include میشند