PDA

View Full Version : آموزش: چک کردن ورودی ها جهت جلوگیری از حملات رایج



IMANAZADI
پنج شنبه 15 بهمن 1394, 16:33 عصر
باسلام
دوستان من یک صفحه دارم که قبل از ارسال به سرور اطلاعات فیلدها رو جمع آوری و کلا به صورت یک متغییر json در میاورم و با Ajax اونو به سرور پاس میدم و در سرور توسط Json_decode() به آرایه تبدیل میکنم و بعد در دیتابیس ذخیره میکنم
میخواستم ببینم با این روشی که گفتم نیازی هست ورودی ها از نظر حملات Sql injection یا XSS یا csrf چک بشن یا نه ؟
این نکته هم بگم برای ذخیره در دیتابیس از pdo و prepare استفاده میکنم
اصلا چه زمانی باید ورودی ها از نظر حملات فوق چک بشن

Unique
پنج شنبه 15 بهمن 1394, 20:22 عصر
میخواستم ببینم با این روشی که گفتم نیازی هست ورودی ها از نظر حملات Sql injection یا XSS یا csrf چک بشن یا نه ؟
اینکه شما json بفرستی یا توی GET یا POST یا هر روش دیگه ای ربطی به این موضوع بررسی ورودی ها پیدا نمیکنه !


این نکته هم بگم برای ذخیره در دیتابیس از pdo و prepare استفاده میکنم
اگه از prepare استفاده میکنی ، به شرطی که مقادیر را پارامتری بدی به Query نه اینکه inline بنویسی مشکلی از لحاظ Sql Injection تا 99 درصد نداری ! اما کلا باید ورودی اون چیزی باشه که ما انتظار داریم و اگه نبود باید به کاربر اخطار داده بشه ! مثلا حالا گیریم شما query را پارامتری نوشتی ولی بجای مقدار عددی ، کاربر مقدار رشته ای داد یا اعشاری داد با مقداری باید توی range مشخصی باشه. کلا این که ورودی کنترل نشه کار اشتباهیه !

بحث حملات XSS و CSRF هیچ ربطی به این موضوعات نداره ، توی XSS باید ورودی ها را فیلتر کنی از نظر خطرات حتمالی ، حالا از htmlspeciachars یا htmlentities استفاده کنی یا htmlpurifire برای داده های html. CSRF هم نیاز به token و مباحث مربوط به خودش داره که اگه توی انجمن بگردی زیاد در موردش بحث شده.

IMANAZADI
جمعه 16 بهمن 1394, 10:47 صبح
مگر زمانی که داده ها رو بصورت json پاس میدیم تبدیل به رشته نمیشه و در سمت سرور باز بصورت آرایه در می آوریم پس خطرش چی هست ؟؟؟؟

H:Shojaei
جمعه 16 بهمن 1394, 11:22 صبح
مگر زمانی که داده ها رو بصورت json پاس میدیم تبدیل به رشته نمیشه و در سمت سرور باز بصورت آرایه در می آوریم پس خطرش چی هست ؟؟؟؟
همه چبز رشته هست کد ورودی خروجی ربطی نداره!
<script></script> اینم رشتست ولی یه رشته مخرب!

plague
جمعه 16 بهمن 1394, 17:16 عصر
مشکل اینه که کد مخرب هم یه رشته هستش و تاثیری نمیزاره روش این کار شما !