PDA

View Full Version : vBulletin از چه کدی برای امنیتش استفاده می کنه؟



djsaeedkhan
چهارشنبه 03 خرداد 1391, 14:47 عصر
با سلام
برام سوال پیش اومده که سی ام اس های حرفه ای مثل vBulletin و غیره از چه توابع و کد هایی برای امنیت بالای خودشون استفاده می کنن تا در مقابل SQL Injection و .... محفوظ بمونن
لطفا هر کی می دونه کد خود vBulletin رو بزاره که همه از اون استفاده کنیم.
با تشکر

M0TR!X
چهارشنبه 03 خرداد 1391, 17:38 عصر
سلام.

تا جایی که من خبر دارم زیاد هم امن نیست اینجا (http://www.exploit-db.com/search/?action=search&filter_page=1&filter_description=vBulletin+&filter_exploit_text=&filter_author=&filter_platform=0&filter_type=0&filter_lang_id=0&filter_port=&filter_osvdb=&filter_cve=)رو ببین.

البته با این حال جزوه cms های خیلی قوی هست !

djsaeedkhan
پنج شنبه 04 خرداد 1391, 13:53 عصر
خوب بالاخره یه تابعی چیزی داره
منظور من اشکال های امنیتی نیست
منظور من اینه که وقتی کاربر چیزی وارد می کنه. چطور ورودی رو امن می کنه برای درج در دیتابیس

djsaeedkhan
پنج شنبه 04 خرداد 1391, 18:11 عصر
سلام
به نظر شکا این تابع تا چه حد می تونه امنیت داده های ورودی رو تضمین کنه

function anti_injection($sql,$numberic=0)
{
if($numberic==1)
{
$pattern='/^[0-9]$/';
if (!preg_match($pattern, $subject) {$sql=''}
}
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = preg_replace(sql_regcase('/script|http|<|>|%3c|%3e|SELECT|UNION|UPDATE|AND|exe|exec|INSERT|t mp/i'),"",$sql);
$sql = trim($sql);//limpa espaços vazio
$sql = strip_tags($sql);//tira tags html e php
$sql = htmlspecialchars($sql, ENT_QUOTES);//tira tags html e php
$sql = str_replace(array("&lt;", "&gt;"), array("<", ">"), htmlspecialchars($sql, ENT_NOQUOTES, "UTF-8"));
$sql = preg_replace("/\r*\n/","\\n",$sql);
$sql = preg_replace("/\//","\\\/",$sql);
$sql = preg_replace("/\"/","\\\"",$sql);
$sql = preg_replace("/'/"," ",$sql);
$sql = addslashes($sql);//Adiciona barras invertidas a uma string
return $sql;
}

eshpilen
پنج شنبه 04 خرداد 1391, 18:32 عصر
سلام
به نظر شکا این تابع تا چه حد می تونه امنیت داده های ورودی رو تضمین کنه
...

این تابعی که گذاشتی مثل این میمونه که یک طرفی برای پیشگیری از مریض شدن بیاد انواع آنتی بیوتیک رو که توی داروخانه هست یه مشت کنه بندازه بالا!
دست آخر هم معلوم نیست خود این داروها با هم دچار اختلال نشن و نزنن طرف رو چپ و چول کنن!!

djsaeedkhan
پنج شنبه 04 خرداد 1391, 19:07 عصر
این تابعی که گذاشتی مثل این میمونه که یک طرفی برای پیشگیری از مریض شدن بیاد انواع آنتی بیوتیک رو که توی داروخانه هست یه مشت کنه بندازه بالا!
دست آخر هم معلوم نیست خود این داروها با هم دچار اختلال نشن و نزنن طرف رو چپ و چول کنن!!
خوب شما میگی چه کنیم
وقتی کاربر مثل آدم نمیاد اطلاعات وارد کنه و ممکنه یه جاییش بخاره که بخواد یه تست امنیت کنه. باید چه کرد
کار ما شده شیمی درمانی. هرچی داریم میریزیم که یه جوری به نتیجه برسونیم

hamed-php
پنج شنبه 04 خرداد 1391, 19:33 عصر
کد امنیتی بذار و با سشن کار کن - از
htmlspecialchars استفاده کن و حداقل جلوی کوتیشن و دابل کوتیشن رو بگیر و در قسمت ورودی هم با جاوا اسکریپت جلوی یه سری چیزا رو بگیر

هر کاری کنی بالاخره چون دایماً داره زبان برنامه نویسی تغییر میکنه و ایران هم دنبال اون میره نمیتونی 100 درصد جلوی اینجکشن رو بگیری بنظر من

djsaeedkhan
پنج شنبه 04 خرداد 1391, 19:36 عصر
بیشترین نوع اینجکشن در فرم های دارای مقدار GET هست یعنی sample.php?id=123
اینا بیشتر سوتی میدن تا بقیه
حالا من می خوام یکاری کنم که به مشکل بر نخوره. واسه همین میگم.