• 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اضافه کردن به آدرس سایت
#1
سلام من سایت من اینجوری آدرس دهی میکنه
کد پی‌اچ‌پی:
http://www.mysite.ir/myuser/comment.php?win=1&id=-335 
اما حالا یه نفر اومده اینجوریش کرده
کد پی‌اچ‌پی:
http://www.mysite.ir/myuser/comments.php?win=1&id=-335%20union%20all%20select%201,2,username,4,5,6,pass%20from%20login 
و اطلاعاتی رو نوشته که اصلا تو دیتابیس ثبت نشده .چه جوری پاکش کنم .چه جوری میشه جلو این حملات رو گرفت
  پاسخ
تشکر شده توسط :
#2
به این جور حملات می گن حملات XSS

php-fusion از این کد برای جلوگیری از این حملا استفاده می کنه :
کد پی‌اچ‌پی:
foreach ($_GET as $check_url) {
    
$check_url str_replace("\""""$check_url);
    if ((
eregi("<[^>]*script*\"?[^>]*>"$check_url)) || (eregi("<[^>]*object*\"?[^>]*>"$check_url)) ||
        (
eregi("<[^>]*iframe*\"?[^>]*>"$check_url)) || (eregi("<[^>]*applet*\"?[^>]*>"$check_url)) ||
        (
eregi("<[^>]*meta*\"?[^>]*>"$check_url)) || (eregi("<[^>]*style*\"?[^>]*>"$check_url)) ||
        (
eregi("<[^>]*form*\"?[^>]*>"$check_url)) || (eregi("\([^>]*\"?[^)]*\)"$check_url)) ||
        (
eregi("\""$check_url))) {
    die ();
    }
}
unset(
$check_url); 
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : scooter yaqubian
#3
سلام .الان مثلا یک نفر اومده این رو اضافه کرده

http://www.ravedesk.ir/user/view/vvvvvvvvvv
ایا این هم همون xssهست. و مطلب دیگه اینکه وقتی این رو واردش بشی می ره به صفحه اصلی.ایا به نظرت این یه باگه؟
-----------------------------------------------------------------------------------------------------------------------------
دیشب php-fusion رو دان کردم و این کد رو دیدم .اما نفهمیدم این $check_url چیه و کجا تعریف شده
  پاسخ
تشکر شده توسط :
#4
دوستان کسی نیست جواب بده به ما
  پاسخ
تشکر شده توسط :
#5
xss که نیست. شاید کسی خواسته تست کنه. اباگ هم نمیشه گفت هست. آیا به نظر شما اتفاقی خارج از ایده شما افتاده که باگ باشه؟
  پاسخ
تشکر شده توسط :
#6
نه ولی به جای اینکه ارور 405 یا 404 بده میره به صفحه اصلی
  پاسخ
تشکر شده توسط :
#7
به نظر من این که خیلی خوب هست
مثلا سایت http://360.hoodad.com شما هر چی بزنید اشتباه بزنید میره صفحه اصلی
  پاسخ
تشکر شده توسط :
#8
این اولین پست منه ، البته من نه سواد زیادی در پی اچ پی ندارم و نه ادعایی ...
در مورد موضوعی که دوستمون scooter اعلام کردن شاید بشه گفت که اگر id هایی که برای آدرس دهی استفاده می کنیم فقط نوع عددی قابل اجرا باشن بهتره ...
مثلا id ها رو + 0 بگیریم !!!
اگر اشتباه گفتم حتما تصحیح کنید.
  پاسخ
تشکر شده توسط : molana
#9
سلام

XSS در واقع حملات Cross Site Scripting هست . برای اینکه با CSS اشتباه گرفته نشه به اون XSS گفته میشه . در این نوع حملات معمولا Scriptهای سمت کلاینت مثل جاوااسکریپت تزریق میشه که می تونه اطلاعات کوکی کاربر رو فاش کنه و ... ( یه سرچ بکنید Big Grin )

راه های مقابله هم در PHP خیلی سادست . فقط کافیه از تابعی که بچه ها درانجمن نوشتن استفاده کنید . در واقع تابع اصلی که در بیشتر مقالات گفته شده ، تابع htmlspecialchars هست. ( در این مورد هم در manual .. )

اما چیزی که شما نوشتید به نظر SQL injection میاد . داره نام کاربری و پسورد رو از جدول لاگین می پرسه !
دوتا کار ساده میشه انجام داد :

ورودی رو با یه تابع جامع ( مثل همین که بچه های امنیت نوشتن تو انجمن ) فیلتر کنی . البته به صورت تک تک هم می تونی Big Grin که هم با SQL injection و هم XSS و ... مقابله کنی .

دومین کار هم در مورد همین نحوه صدا زدن صفحات ، ابتدا ورودی ID رو داده ای از نوع Integer قرار بده و اگه نبود ادامه نده ... و صفحه اصلی رو لود کن . اگر هم Integer بود بعد از بررسی های لازم از دیتابیس اطلاعات رو بگیر ...
  پاسخ
تشکر شده توسط : admin scooter


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان