PDA

View Full Version : گفتگو: php و امنیت



djscsi
سه شنبه 26 شهریور 1387, 00:04 صبح
دوستان یه سوالی برای من پیش اومده
فرض کنید شما یه سایتی طراحی کردید و اون رو upload کردید روی یه سروری حالا اون هک شده
1.از کجا میشه فهمیده buge موجود از کجا بوده منظورم اینه که مشکلی در برنامه نویسیش بوده یا سرور ضعیف بوده که سایت شما هک شده؟
2.چه جوری میشه فهمید این کدی که الان نوشتید از نظر امنیت شما همه چیز رو رعایت کردید و بقیش بستگی به امنیت سروری داره که شما سایت رو توش upload کردید؟
ممنون از همه

Lagon666
سه شنبه 26 شهریور 1387, 09:37 صبح
جواب سوال نخست:
نمیشه فهمید از کجا بوده. معمولا خود هکر میگه. اما میتونی طوری برنامتو بنویسی که همه ی Referer ها و صفحاتی از سایتت که بازدید میشن رو، یه جا LOG کنی. البته این کار یه Database بینهایت هم میخواد. یا میتونی هرچند وقت یه بار بری خالیش کنی.

جواب سوال دوم:
معمولا تیم های برنامه نویسی چند نفر برای بخش امنیتشون دارن که امنیت برنامه هارو تست کنن. اما به طور کلی چندین راه برای نفوذ به سایت ها وجود داره. یکی وارد کردن کد های HTML & JAVASCRIPT در صفحه به کمک فرم ها و متد های صفحه ها است (مثلا یکی نفر User ای به اسم <script>alert(document.cookie);</script> ممکنه درست کنه ) که با این روش معمولا کوکی ها دزدیده میشه و میشه راحت به سایت نفوذ کرد. روش های دیگه ای مثل Include Injection و SQL Injection هم وجود دارن. هکر معمولا خودش روش میسازه و به این چند روش اکتفا نمیکنه.

afrashteh1
سه شنبه 26 شهریور 1387, 11:33 صبح
دوستان اگه من بخوام برای یه جای مهم مثلا برای یه بانک سایتی طراحی کنم که این سایت تقریبا اکثر کار های مربوط به بانک و مشتری را انجام بده برای امنیت اون باید چه کاری را انجام بدم ایا نوشتن کد به تنهایی کفایت میکنه یا نه لازمه یه گروه امنیتی حتما باشه.اگر خودم بخوام به جای این گروه فعالیت کنم باید در چه زمینه های تخصص داشته باشم و اگر هم در این زمینه منابعی وجود داره از ما دریغ نکنید .

Bahram0110
سه شنبه 26 شهریور 1387, 12:30 عصر
برای اینکه بفهمید کسی قصد هک کردن سایت شما رو داشته یا نه، راه خیلی سادش اینه که از گزارش هایی که cPanel در اختیارتون قرار می ده استفاده کنید.
مثلا یکی میاد یک سری فایل که روی یه سایت دیگه قرار داره رو می خواد به سایت شما تزریق کنه

afrashteh1
سه شنبه 26 شهریور 1387, 13:06 عصر
دوستان ولی من هنوز پاسخ خود را به طور کامل دریافت نکردم

org.kiani
سه شنبه 26 شهریور 1387, 13:54 عصر
دوستان اگه من بخوام برای یه جای مهم مثلا برای یه بانک سایتی طراحی کنم که این سایت تقریبا اکثر کار های مربوط به بانک و مشتری را انجام بده برای امنیت اون باید چه کاری را انجام بدم ایا نوشتن کد به تنهایی کفایت میکنه یا نه لازمه یه گروه امنیتی حتما باشه.اگر خودم بخوام به جای این گروه فعالیت کنم باید در چه زمینه های تخصص داشته باشم و اگر هم در این زمینه منابعی وجود داره از ما دریغ نکنید .با سلام من نمی دونم سطح اطلاعات امنیتی برای توسعه چنین وب سایتی باید در چه حدی باشه ولی اطلاعات موجود در این لینک خیلی اساسی و مفید برای هر توسعه دهنده وب هست.
http://barnamenevis.org/forum/showthread.php?t=19410

narsic
چهارشنبه 27 شهریور 1387, 00:30 صبح
با سلام
یه یکی از راهات اینه که از یه تیم هکر استفاده کنی که بصورت مرتب صفحاتت رو مورد بررسی قرار بدن حملات بانکت رو امتحان کنن و .... .
یه کدم اضافه کن که از زیاد بروز کردن صفحاتت به صورت مرتب و در فواصل زمانی کم توسط یک کاربر جلوگیری کنه به صورت مخفی انتقالش بده .
موفق باشی

vahid4134
چهارشنبه 27 شهریور 1387, 13:53 عصر
دوستان یه سوالی برای من پیش اومده
فرض کنید شما یه سایتی طراحی کردید و اون رو upload کردید روی یه سروری حالا اون هک شده
1.از کجا میشه فهمیده buge موجود از کجا بوده منظورم اینه که مشکلی در برنامه نویسیش بوده یا سرور ضعیف بوده که سایت شما هک شده؟
2.چه جوری میشه فهمید این کدی که الان نوشتید از نظر امنیت شما همه چیز رو رعایت کردید و بقیش بستگی به امنیت سروری داره که شما سایت رو توش upload کردید؟
ممنون از همه
بزار کلی بررسی کنیم
باگ در چه صورت توی سایت وجود داره
سرور به راحتی کرک نمیشه اگر بشه کل سایتهای روش باید داغون بشه. تازه کسی اگر یک کرکر یک سرور رو کرک کنه تمام بلاها رو سرش در میاره چون مدیر سرور زود می فهمه و یک کاری می کنه . اگر من یک کرکر باشم (از نوع شرورش) وقتی که دسترسی پیدا کردم همه فایلها رو از بین می برم و تمام دسترسی ها رو خراب می کنم نه اینکه فقط برم سراغ یک سایت
حالا اشکال سایت خودت رو چطور می تونی بفهمی. از cpanel زیاد چیزی دستگیرت نمیشه. cpanel یک اطلاعات آماری و کلی رو بهت میده. شاید بتونی ازش DDOS ها رو تشخیص بدی. اما به اینها اعتماد نکن به کد خودت اعتماد کن.
یکی از راهها اینه همیشه log بگیر. هر کاری که انجام میشه log یادت نره. یه چیز اضافه میشه. بدون چه کسی و کی اضافه کرده یا ویرایش کرده یا حذف کرده. اخطارهای php رو نذار نشون بده و داخل یک فایل بنویس . اخطارهای mysql رو هم همینطور . وقتی که از اینها لاگ داشته باشی می تونی به راحتی بفهمی که چه طور سایت هک شده . از یک طرف کار رو برای کرکر سختتر می کنه چون اخطاری رو نمی بینه ولی تو می بینی. اینجوری شاید سایتت یه جایی نکات امنیتی رو رعایت نکرده باشه و به sql تو کرکر بتونه تزریق کنه. احتمال اینکه درست زده باشه و sql بدون اخطار کارش رو انجام بده حدود ۲۰ درصد هست و ۸۰ درصد امکان داره اخطار بده. و این اخطار به همراه زمان و ip ذخیره میشه و کرکر تنها یک صفحه سفید می بینه و شما در قسمت log اخطار رو به صورت کامل بینید
این خود کد نویسی هست اما باز کرکرها راههای دیگه ای رو دارند. سایتهای زیادی هستند که کد شما رو تست می کنند (البته پولی) . اما نیاز به یک تیم مراقبت همیشه الزامی هست. ssl هم نباید یادمون بره و ارتباط امن رو بین مشتری و سایت برقرار کنیم
phpsec.org منبع خوبی برای امنیت هست اما باز هم جستجو کنید.
بحث امنیت رو فقط در php محدود نکنید و باید در مورد دیتابیس هم مسائل امنیتی رعایت بشه

djscsi
پنج شنبه 28 شهریور 1387, 04:23 صبح
ممنون از دوستانی که تو این پست منو همراهی کردند
منتظر مطالب مفید دیگه ای هم هستم
ممنون

djscsi
پنج شنبه 28 شهریور 1387, 04:34 صبح
یکی از راهها اینه همیشه log بگیر.
وحید جان در مورد این log یه توضیحی میدی من چه جوری باید log بگیرم ؟کدش رو برام میزاری اینجا ؟
ممنون

vahid4134
پنج شنبه 28 شهریور 1387, 09:52 صبح
وحید جان در مورد این log یه توضیحی میدی من چه جوری باید log بگیرم ؟کدش رو برام میزاری اینجا ؟
ممنون
عادت ندارم کد بنویسم چون همیشه کد من یه جاییش می لنگه:چشمک:
اما راهنمایی
وقتی که mysql تو امکان اخطار وجود داره همه عادت دارند بنویسند
or die(mysql_error();
در حالی که اگر اخطار mysql بود باید ااخطار رو داخل فایل بنویسند
در مورد اخطار های php هم که خیلی راحتتر هست
http://ir.php.net/manual/en/errorfunc.examples.php

ealvandi
جمعه 29 شهریور 1387, 00:00 صبح
از راهنمایی های وحید تشکر میکنم