لو رفتن متدهای سایت در ایجکس
سلام
من دیروز داشتم سایت رو بررسی می کردم متوجه یک اشکال در سایت شدم. و اون هم این بود که آدرس متدهای عمیلیاتی که در ایجکس وارد میشه براحتی قابلی دسترسی هست و کاربران می تونند ونها رو بردانرد....
شاید اینکار از لحاظ امنیتی مشکلی نداشته باشه(که من مطمئنم می تونه داشته باشه)، اما به هر حال من به شخصه تمایلی ندارم که کاربران به این آدرس ها دسترسی داشته باشند!
چه راهی برای اینکه آدرس ها مستقیم در ایجکس وارد نشند وجود داره؟
فکر نکنم با دونستن متدهای php تون مشکلی پیش بیاد و وظیفه ی شماست که با کدهاتون سمت سرور از نفوذ هکرها جلوگیری کنید اگه نخواید این کار رو بکنید باید از اسکریپت سروری استفاده کنید که سرعت پاسخ دهی خودتون رو پایین می یارید.
یه سری روش وجود داره ولی قابل دور زدن هستن،
مثلا ببینید لینک ارجاع دهنده از خود سایت شما هست یا مستقیم وارد شده:
function getReferer(){
if (!isset(getallheaders()['Referer'])){
return null;
}
return getallheaders()['Referer'];
}
if (getReferer() != 'http://example.com'){
echo 'Forbidden Request!';
}
ولی همونطور که دوستمون گفتن اگر کسی اسم متدهاتون رو بدونه در صورتیکه کدهاتون رو امن نوشته باشید مشکلی پیش نمیاد.
*آموزش های استاد => بخش 6 => قسمت اول (کنترل سطح دسترسی)
اگر این قسمت رو دیده باشید و کد هاشو نوشته باشید استاد توضیح دادند که حتی اگر کسی متود های ایجکس ما رو اجرا کنه تا زمانی که دسترسی مورد نظر مارو نداشته باشه کاری نمیتونه انجام بده . ( با استفاده از متودهایی مثل grantAdmin که استاد توی آموزش نوشتن)
به عنوان مثال میخاد کامنت رو پاک کنه ؟ با استفاده از متغیر SESSION تشخیص میدیم که کاربر ما چه کسیه و آیا کامنتی که میخاد پاک کنه مال خودشه یا نه ؟ اگر خواست کامنت دیگه ایو پاک کنه تا زمانی که دسترسی ادمین نداشته باشه این امکان براش وجود نداره .
همه چیز تحت کنترل ماست حالا اگه اسم متود مارو بدونن چه اتفاقی ممکنه پیش بیاد ؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .