PDA

View Full Version : ترتیب توابع در جلوگیری از حملات xss



IMANAZADI
پنج شنبه 09 مرداد 1393, 17:57 عصر
با سلام
من از تابع زیر برای جلوگیری از حملات xss استفاده میکنم




function CheckParameter($par)
{
$Return1=stripslashes($par);
$Return2=htmlspecialchars($Return1,ENT_QUOTES);
$Return3=strip_tags($Return2);
return $Return3;
}



حالا سوال اینه که ترتیب صحیح کد ها به چه صورت است
من در خط اول اسلش ها رو حذف کردم
در خط دوم کاراکترهای < > ' " رو کد کردم
در خط سوم هم تگ های html رو حذف کردم


آیا این ترتیب صحیح است ؟؟؟؟

vahidqara
پنج شنبه 09 مرداد 1393, 18:15 عصر
شما میتونید چک کنید و خروجی رو ببینید دوست عزیز... ورودی مختلف بده خروجی رو میبینی به این سادگی:لبخندساده:

IMANAZADI
جمعه 10 مرداد 1393, 07:15 صبح
اینو چک کردم ولی میخوام عرف معمولش رو بدونم

vahidqara
جمعه 10 مرداد 1393, 10:06 صبح
عزیزم اینجا عرف نداریم بلکه منطق داریم... شما وقتی ورودی دادی و خروجی که بدست آوردی عاری از هر جمله خطرناک بود پس درسته عزیزم :لبخندساده:

rezakho
جمعه 10 مرداد 1393, 13:45 عصر
حملات XSS در دو مورد اتفاق میافته

1- داده های ورودی از منابع ناامن و نامطمئن مثل داده های موجود در درخواست ها
2- خروجی های تولید شده پویا که برای کاربر ارسال میشه

اگر داده های دریافتی و یا ارسالی به کاربر، باید داده های خام باشند و نباید حاوی کدهای HTML , CSS و ... باشند، به جای فیلتر کردن ورودی، بهتره هنگام چاپ داده ها scape بشند با توابع مربوط به ین کار مثل htmlentities

اگر داده ها میتونند شامل کد باشند، میتونید از فیلتر های حرفه ای تر که دستتون رو خیلی باز میگذارند استفاده کنید، مثلا اجازه بدید داده ها فقط تگ های b , u , i , ... رو داشته باشند و هر چیزی به غیر از اینها حذف بشه، با استفاده از تصفیه کننده هایی مثل http://htmlpurifier.org