PDA

View Full Version : سوال: امنیت ajax



hossein1377
جمعه 06 اسفند 1395, 08:47 صبح
سلام دوستان خسته نباشید یه مسئله هست که من بد جور درگیرش هم قبل از این که بنویسم یه چندتا تاپیک در موردش خوندم ولی مشکلم حل نشد اقا مشکلم اینه که من می خوام صفحه ثبت نام بسازم که در اون کاربر نام کاربری را نوشت بگرده ببینه کاربر موجوده یا نه خب باید اطلاعات را به یه صفحه دیگه ارسال کنم و انجا با php چک کنم که موجود یا نه اگه این روش ajax نبود من توی همون صفحه لاگین فرم را پست می کردم ولی حالا که ajax و می خوام فقط ببینم کاربر موجود یا نه به یه صفحه دیگه ارسال می کنم اما مسئله اینه که اگه هکر سورس را بررسی کنه می فهمه ادرس صفحه ی که من توی اون نام کاربری را چک می کنم چیه. میدونم هیچ راهی نیست که نتونه ادرس را پیدا کنم ولی ایا شما پیشنهادی دارید اگه به اون صفحه رفت سرور تشخیص بده این هکر و به صفحه ی اصلی انتقالش بده. و همچنین نتونه درخواست تزریق کنه!!!

Unique
جمعه 06 اسفند 1395, 09:16 صبح
سلام

ببینین اصلا مهم نیست هکر یا هر شخص دیگه بدونه شما اطلاعات را برای چه صفحه ای پست میکنید و به چه روشی انجام میدین ! توی حالت عادی هم هکر میدونه اطلاعات داره برای همون صفحه با فرم پست میشه. من دقیقا منظورتون را از تزریق نمیفهمم ! اگه منظورتون اینه بتونه SQL Injection بزنه گه خوب شما باید توی query مشکل را حل کنین و اطلاعات را escape کنین که البته با استفاده از PDO یا MySQLi به این کار ها نیازی نیست و Inject نمیخورین ! اگه منظورتون اینه اطلاعات پوچ بریزه توی سیستم که باز هم این صفحه داره فقط وجورد نام کاربری را چک میکنه و اگر هم insert انجام بده باز هم شما باید با روشی مثل captcha مانع از ارسال اطلاعات از طریق ربات بشین. به هر حال احتمال دریافت اطلاعات پوچ وجود داره نه برای شما بلکه همه جا و به هر روشی. خلاصه موضوع ajax واینکه شما با javascript اطلاعات را پست میکنید موضوع امنیت زیر سوال نمیره.

hossein1377
جمعه 06 اسفند 1395, 09:37 صبح
ممنون عالی بود
منظورم از تزریق اطلاعات یعنی اون با روشی دخواست POST به اون صفحه بفرسته ایا روشی هست که مطممئن کنه اگه اون خواست صفحه را باز کن بهش هیچ چیزی نشون نده یا به یک صفحه مثل 404 یا صفحه اصلی بفرسته

numberone1
شنبه 07 اسفند 1395, 01:12 صبح
سلام

2 تا کار میتونی انجام بدی
1 چک کنی درخواست ایجکس باشه حتما. سرچ کن 1 خط کد داره
2 از csrf توکن استفاده کن و بعد از هر درخواست مقادرشو آپدیت کن .

این 2 تا هم قابل دور زدن هست توسط هکر ولی باعث میشه کارش سخت تر بشه
یه کار دیگه هم میتونی بکنی که ربطی به ایجکس نداره میتونی در خواست های کاربر و ذخیره کنی و بگی اگر مثلا کاربر خواست 5 بار این فرم و پست کنه بجای نمایش فرم بهش صفحه کپچا نشون بدی
گوگل برای سرچ های زیاد و پشت سرهم همین کار و میکنه
تو لاراول throttel برای همین منظور درست شده. توی فریم ورک های دیگه هم

Unique
شنبه 07 اسفند 1395, 01:49 صبح
قطعا میتونه این کار را انجام بده و اطلاعات را پست کنه ! شما چون قطعا میدونی برای این صفحه فقط مقادیر با POST میاد. میتونی اگه مقدار POST_$ خالی بود با header خطای ۴۰۴ بفرستی یا به قول دوستمون csrf token گذاری و اگه توی POST_$ مقدارش نبود با header خطای ۴۰۴ بفرستی. ولی کاربر میتونی این ها را هم دور بزنه و بالاخره مقداری که میخواد را بفرسته اما کارش سخت میشه همونطور که number1 میگه. مورد نمایش کپپچا در صورت ۵ بار درخواست در فاصله زمانی کم هم بدک نیست اما بالاخره همون ۵ بار درخواست نامعبر داری دیگه حداقل. کلا روی وب غیر از captcha نمیشه اصالت ارسال توسط یک کاربر را بررسی کرد. تازه هر captcha ی هم نه اما برای شما کافیه. اگه نگران حملات DDOS هستی خوب باید با روش ها مربوط به خودش مقابله کنی. کلا من متوجه نمیشم بازم برای چی میخوای کاربر را محدود کنی وقتی چیزی جایی insert نمیشه ! نگران ارسال اطلاعات پوچ نباش ! هکر دنبال این چیزا نمیره. بیشتر میگرده ببینه میتونه Inject کنه یا جایی اشتباه خیلی ضایع نکرده باشی بتونه code اجرا کنه روی سرور. حملات ddos را هم که گفتم روشش چیز دیگست. پس نگرانی نداره.

hossein1377
شنبه 07 اسفند 1395, 08:16 صبح
خیلی ممنون از جواباتون

کلا من متوجه نمیشم بازم برای چی میخوای کاربر را محدود کنی وقتی چیزی جایی insert نمیشه ! نگران ارسال اطلاعات پوچ نباش ! هکر دنبال این چیزا نمیره.
کلا من می خوام هکر هیچ کاری نکنه ولی دستتون درد نکنه مشکلم را با روش های که شما ها گفتید حل میشه خیلی ممنونم از هر دو تون