PDA

View Full Version : سوال: سایتم هک شد.میخوام بدونم چجوری این راه نفوذ ها رو ببندم؟؟



saeed-71
چهارشنبه 27 شهریور 1392, 18:54 عصر
سلام.
امروز سایت منو هک کردن.کلی کد جاوا اسرکیپت وارد دیتابیس شده بود!حدود 5000تا سطر ...
مجبور شدم کلا اتصاصل به دیتابیس رو قطع کردم و سایتم اومد پایین:افسرده:
حالا میخوام رو امنیتش کار کنم!
اعتبار سنجی کلاینت رو انجام داده بودم اما انگار موثر نبوده که اینجوری ...!!!!!!!!!
حالا میخوام بدونم چجوری اعتبار سنجی سمت سرور رو انجام بدم تا دیگه این بلا سرم نیاد ؟
ببینید موقع ثبت نام من فقط شماره کاربر + اسمو فامیل رو میگیرم.
رمزم خودم به صورت رندم تولید میکنم و براش ارسال میکنم.
چون کد کپچا نذاشته بودم اون هکر تند تند هی کد وارد دیتابیس میکرد!نمیدونم چجوری!

ابوذر محمودی
چهارشنبه 27 شهریور 1392, 19:08 عصر
اعتبار سنجی باید هم سمت کلاینت باشه ، هم سمت سرور ، سمت سرور خیلی مهمه ، سمت کلاینت امنیت رو اصلا تامین نمیکنه ، این سمت سرور هست که امنیت رو تامین میکنه.
غیر از فرم ثبت نام ، همه اطلاعات post و مخصوصاً GET هم باید امن بشن و از یه سری فیلتر ها رد بشن مثل htmlentities , htmlspecialchars و اگه از mysql واسه اتصال استفاده میکنین از فیلتر mysql_real_escape_string حتما استفاده کنین ، اگرم میتونین از pdo استفاده کنین بهتره .
کد کپچا هم حتما بذارین تا با روبات اینکارو انجام ندن

plague
چهارشنبه 27 شهریور 1392, 19:08 عصر
نرم افزار اسکنر امنیتی استفاده کرده
اگه کد جاوا اسکریپت گزاشته تو دیتابیست یعنی آسیب پزیری xss داری
کپچازار فرمت رو هم ایمن کن

saeed-71
چهارشنبه 27 شهریور 1392, 19:16 عصر
من کلا همه چا از متد post استفاده میکنم.
از تنها فیلتریم که استفاده کردم این بوده


$mobile=mysql_real_escape_string($_SESSION['mobile']);

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

mostafa272
چهارشنبه 27 شهریور 1392, 20:37 عصر
متداول ترین روش هک تزریق sql هست شما باید هر جا که اطلاعاتی رو به دیتابیس منتقل میکنید یا می خونید از صحت داده ها مطمئن بشید. کدهای sql رو هم باید به شکلی ایمن استفاده کنید. اصولا هکرها معمولا برای تست نفوذ پذیری سایتها و برای پیدا کردن یه حفره از روش تولید خطا استفاده می کنند پس با کمک توابعی که وجود داره به هیچ عنوان اجازه ندید که در صورت بروز خطا پیغامی منتشر شود.

البته اینکه گفتی کد جاوا داخل دیتابیس هست مربوط یه همون آسیب پذیری xss هست. مقداری ورودی رو قبل از هر کاری از فیلتر تابع هایی مثل htmlentities , htmlspecialchars،strip_tags رد کن یا از توابع جایگزینی در رشته ها مثه preg_replace برای حذف تگهای script استفاده کن.
مثال زیاد هست. مثلا لینک زیر:

http://stackoverflow.com/questions/1886740/php-remove-javascript (http://stackoverflow.com/questions/1886740/php-remove-javascript)

saeed-71
چهارشنبه 27 شهریور 1392, 20:50 عصر
خوب منم دقیقا میخوام همین توابع و روشهای جلوگیری رو بدونم!

saeed-71
پنج شنبه 28 شهریور 1392, 14:48 عصر
ایا چیزیو که به طور خودکار تولید میشه و تو دیتابیس ذحیره میشه هم باید اعتبار سنجی کرد؟؟؟؟؟؟؟
مثلا رمزی که به صورت رندم تولید میشه بعد هش میشه و بعد ذخیره میشه رو هم باید اعتبار سنجی کرد؟

masiha68
پنج شنبه 28 شهریور 1392, 14:59 عصر
اره
هرچیزی رو که وارد دیتابیس می کنی ایمن کن
البته کدهای تولیدی خود سیستم معمولا امن هست مثلا هیچوقت یه پسورد با ' تولید نمیشه
در کل صد بار گفتم باید یه قسمت هک و امنیت توی این قسمت باشه ولی انگار مدیر این قسمت (اقای شهرکی) اصلا از من خوششون نمیاد چون جواب ندادن و اصلا توجه نکردن

darkface
پنج شنبه 28 شهریور 1392, 17:02 عصر
سلام
به همین راحتی میتونی جلوی این کاری که شده را بگیری دادا

<?php
// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}

function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data=mysql_real_escape_string($data);
$data = preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', "", $data);
return $data;
}
?>

همون طوری که میبینی یه تابع با یه ارگومان که ارگومان ورودی اطلاعاتت هست رو میگیره و اطلاعات اضافی که حالا به اشتباه یا با قصد و غرض وارد شده رو حذف میکنه و میمونه تنها اطلاعات خام و خالص

mtnam1372
پنج شنبه 28 شهریور 1392, 17:44 عصر
سلام دوست عزیز تمامی موارد امنیتی مورد نیاز شما در مقاله ای که در امضام هست موجوده