جاوا اسکریپت – کدام شخصیت ها باید فرار کنند یا جایگزین شوند تا حملات تماس تلفنی xss jsonp جلوگیری شود؟

به نظر می رسد که شما از چارچوب ارائه دهنده خدمات پرسیدید، در این صورت پاسخ ساده است:

به عنوان ارائه دهنده خدمات، شما نمی توانید از XSS در برابر همه محافظت کنید، و شما نیز ممکن نیست

به خاطر داشته باشید، من معمولا در "دفاع در عمق" بزرگ و قرار دادن در دیوارهای امنیتی در هر مرحله از راه است. با این حال من فکر می کنم این به معنای واقعی کلمه یکی از مکان هایی است که نگرانی شما در مورد آن نگران کننده نیست. دو دلیل وجود دارد:

1. با استفاده عادی، مشتری اجرای کامل کنترل درخواست را دارد، و بنابراین هیچ دلیلی برای انتظار بارهای بارز مانند این وجود ندارد

در مورد این واقعا نمی توان گفت خیلی بیشتر است، زیرا این چیزی نیست که شما در مورد آن نگران هستید. اما فقط بگو با صدای بلند: مشتری خود را ارائه تماس تلفنی JSONP، و بنابراین اگر آنها را انتخاب کنید از شما درخواست بازگشت جاوا اسکریپت واقعی، پس از آن است که دلیل زیادی برای شما وجود دارد که آنها را متوقف کند (به خصوص از آنجا که انجام این کار خواهد بود احمقانه و متاسفم که هر کسی زحمت میکشد) تنها زمانی که کسی ممکن است درخواست "خطرناک" را از سرور خود درخواست کند، این است که اگر مشتری از راه دور نقص XSS داشته باشد و جاوا اسکریپت مخرب سیستم خود را گرفته است. با این حال، اگر چنین اتفاقی بیفتد:

2. جاوا اسکریپت مخرب دارای کنترل کامل بر روی سرویس گیرنده از راه دور است و نیازی به اجرای جاوا اسکریپت دلخواه را ندارد

که به همان اندازه ساده است: اگر مهاجم یک حمله XSS را علیه یک مشتری با استفاده از سرویس خود مدیریت کرده باشد، لازم نیست جاوا اسکریپت مخرب را به callback تزریق می کند. آنها فقط می توانند روش Callback را در سرویس گیرنده محلی خود جایگزین کنند. در واقع، این بسیار ساده تر است. به عنوان یک نتیجه، به معنای واقعی کلمه هیچ دلیلی وجود ندارد که چرا کسی به دنبال استفاده از خدمات شما به عنوان یک نقطه پایانی تزریق XSS به مشتری از راه دور است. برای قرار دادن آن به سادگی:

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

من فکر می کنم ممکن است برخی از توسعه دهندگان وجود داشته باشد که با برخی از طرح های دیوانه (خطرناک) مطرح شده اند که در آن، ورودی کاربر در سایت آنها برای ساختن پاسخ فراخوان JSONP منتقل می شود به سرویس شما، و آن را به ضعف آسیب پذیری XSS درجه اول می شود. با این حال، هیچ دلیلی عملی وجود ندارد که چرا کسی هرگز چنین چیزی را انجام دهد (با استفاده از بسیاری از این نوع خدمات خودم، شما باید از راه خود برای راه اندازی چیزهایی که خطرناک است)، تا آنجا که من فکر می کنم ارزش صرف وقت خود را صرف تلاش برای محافظت از کاربران خود را از آن سطح silliness. شما بیشتر احتمال دارد به طور تصادفی عوارض جانبی منفی را به کاربران معمولی خود اضافه کنید تا از کسی محافظت کنید تا سطح برنامه ریزی ضعیف که لازم باشد برای این حفاظت در پایان شما انجام شود.

چند راه برای اجرای یک بازپخش XSS منعکس شده است

من تعجب کردم که چگونه بسیاری از روش های مختلف برای اجرای حملات XSS وجود دارد.

در تقریبا در هر تظاهرات، می بینم، حمله در یکی از 3 روش زیر منجر شده است:

  1. با وارد کردن اسکریپت به یک فیلد ورودی . جلوی آن سپس از این ورودی برای پر کردن یک درخواست استفاده می کند که قبلا برای انجام آن طراحی شده است. ورودی اسکریپت در پاسخ درخواست پاسخ داده می شود و پس از آن اجرا می شود اگر جلوی آن سپس آن را به DOM اضافه می کند.
  2. با وارد کردن درخواست در نوار آدرس. این فقط با درخواست GET کار می کند. اگر یکی از پارامترها یک اسکریپت برای ورودی داشته باشد و اگر پارامتر قابل مشاهده (به عنوان html) در پاسخ باشد، صفحه پاسخ آن را اجرا خواهد کرد.
  3. با ارائه یک کاربر ناخواسته با یک لینک. اگر کاربر به اشتباه لینک را کلیک کند، به طور غيرعادي فرآيندي را که در # 2 اجرا مي شود اجرا مي کند.

روشهاي ديگري نيز وجود دارد؟ آیا منابع وجود دارد که راه های دیگر آن را شرح می دهد؟

همچنین، اگر وبسایت برای هر ورود به نشانه های جلسه استفاده می کند، آیا با استفاده از روش های 2 و 3، کدامیک از این نشانه ها را دریافت می کنید؟ یا نشانه های جلسه از این روش ها ما را محافظت می کند؟

تفاوت بین رمزگذاری، فرار و Sanitizaton در زمینه امنیت برنامه برای کاهش XSS

لطفا تفاوت های کلیدی بین رمزگذاری، فرار و پاکسازی ورودی را برجسته کنید. چگونه یک ورودی ارائه شده توسط کاربر را می توان در پروکسی متوقف شده مانند Burp Suite تحلیل کرد تا از حملات XSS امن باشد؟ چگونه می توان همه این ها را کنار گذاشت؟ آیا می توان آن را دور زد؟ و راه حل نهایی برای مقابله با حملات XSS چیست؟
چگونه می توان اطمینان حاصل کرد که مهاجم قادر به جلوگیری از کدگذاری خروجی نیست؟

xss – Cross Scripting بر روی یک کلید منحصر به فرد

تصور می کنم که پاسخ به این کاملا پایه است.

آیا می توان یک اسکریپت متقابل سایت را پیوست کرد با وارد کردن اسکریپت من به یک فیلد که نیاز به یک مقدار خاص دارد؟

من اسکن یک نرم افزار برای آسیب پذیری ها و ابزار اسکن من (OWASP ZAP) چندین آسیب پذیری اسکریپت متقابل سایت را باز می کند. نتایج برگشت شامل مسیر برای درخواست REST، روش متصل (GET یا POST) و پارامتر مورد استفاده برای افزودن اسکریپت است.

مسئله این است که برای هر آسیب پذیری، پارامتر مورد استفاده یک شناسه برای یک مقدار منحصر به فرد است. برای مثال، درخواست getUserPrivileges GET آسیب پذیری را با استفاده از پارامتر "userId" نشان می دهد. اگر من سعی کردم این درخواست را در SoapUI انجام دهم، با استفاده از یک UserID معتبر، من پاسخ "بد درخواست" را دریافت کردم. همچنین در رابط کاربر هیچ جایگاهی وجود ندارد که به من اجازه می دهد مقدار مناسبی برای این پارامتر وارد شود.

فرض من این است که مسائلی مانند این همه مثبت کاذب هستند، اما نمی دانم در مورد این موضوع، من می خواستم بررسی کنم فرض من

اگر در این فرض صحیح باشد، آیا دلایلی وجود دارد که چرا چنین مثبت کاذب برآورده شود؟ آیا وجود دارد چیزی که باعث می شود ابزار اسکن من این را برای یک مسئله اشتباه کنم؟

متشکرم از زمان شما.

xss – حفاظت از وب سایت در برابر حملات با iframe برای جاوااسکریپت تولید شده توسط کاربر؟

من یک زمین بازی کوچک برای مردم برای نوشتن و تست جاوا اسکریپت در وب سایت من ایجاد میکنم. من می دانم که وبسایت هایی مانند jsfiddle در حال حاضر وجود دارد، اما فقط برای سرگرمی و برای تلاش برای چیزی جدید است.

اکنون می دانم که مردم می توانند سایت من را خیلی بد با XSS و چیزهای دیگر هک کنند، بنابراین من چند راه برای جلوگیری از ویرانی آوردم :

  1. به طور معمول، مردم جاوا اسکریپت و HTML خود را در یک فرم می نویسند. این متن خالص است هیچ چیز کارکردی نیست.

  2. وقتی میخواهید کد را آزمایش کنید، دادهها از www.A.com به www.B.com ارسال میشوند

  3. در این دامنه، دادهها به یک iframe با ویژگی sandbox در بدون گزینه "allow-top-navigation"

  4. سپس iframe به www.A.com فرستاده می شود

  5. www.A.com دریافت iframe و آن را به عنوان یک کودک به DOM اضافه می کند.

  6. کاربر می بیند iframe و می تواند با آن ارتباط برقرار کند.

آیا این به اندازه کافی امن است؟ یا من از دست رفته چیزی مهم است؟