Operatsiyalar ogohlantiradi, tezlashtiradi va tasdiqlaydi. Asosiy Javascript bilan o'zaro aloqa. JavaScript - Texnik ogohlantirish, so'rash va tasdiqlash. Oddiy qoidaga qoida qo'shish

Bir nuqtada biz oyna obyektining usullari bilan tanishamiz: alert(), prompt() va confirm().

alert() usuli

"OK" tugmasi bilan tayinlangan bildirishnomalar oldidagi birinchi dialog oynasi ekranida ko'rsatish uchun topshiriqlarning alert() usuli. Muhim ma'lumotni koristuvachga etkazish uchun g'alaba qozonishi mumkin.

window.alert(Parameter_1);

Alert() usuli bitta tilga xos parametrga ega bo'lishi mumkin - dialog oynasida ko'rinadigan ogohlantirish matni. Daniya usuli o'zining vikonnannyasidan keyin hech narsani o'zgartirmaydi.

Masalan, dialog oynasi oldidagi kuchga qarshi bosilganda saytni tekshirish ko'rsatiladi: Veb-saytga o'ting

tasdiqlash() usuli

Oyna ob'ektining confirm() usuli tayinlangan so'rovlar va "OK" va "Tekshirish" tugmalaridan dialog oynasini ekranda ko'rsatish uchun ishlatiladi. Tasdiqlash uchun g'olib bo'lishingiz mumkin, shunda siz chi íêí ínsho ííí yutib olishingizga ruxsat berish to'g'risida koristuvachdan so'rashingiz mumkin.

var resultConfirm = tasdiqlang(Parameter_1);

Ushbu usul bitta parametrga ega - eslatma matni, chunki u muloqot oynasida ko'rsatiladi.

confirm() usuli viconn natijasi (resultConfirm) sifatida ikkita qiymatdan birini aylantiradi:

  • "OK" tugmasini bosib koristuvachga to'g'ri;
  • yolg'on , go'yo koristuvach "Skasuwati" ni bosgan yoki yopiq yogo.

Masalan, id="resultConfirm" elementida dialog oynasidagi "OK" tugmasini bosish natijasi:

prompt() usuli

So'rovlar bilan dialog oynasini, ma'lumotlarni kiritish uchun matn maydonini va "OK" va "Aytish" tugmalarini ishlatish uchun tayinlashning prompt() usuli. Vono koristuvach ma'lumotlarini so'rash uchun tan olinadi.

var resultPrompt = prompt(Parameter_1, Parameter_2);

Ushbu usul ikkita parametrga ega:

  • eslatma, chunki u dialog oynasida ko'rsatiladi. Tsey parametr ê obov'yazykovym i místit povydomlennya, nima "gapirish kerak", yaki dani koristuvach matn maydoniga kirish uchun aybdor;
  • boshqa parametr "yiqilib bo'lmaydigan" va uni kiritish dialog oynasida ko'rsatilganidek, kob qiymatini kiritish uchun o'zgartirilishi mumkin.

Prompt() usuli yordamida quyidagi ma'lumotlarni aylantirishingiz mumkin:

  • matn qiymatlari - kiritish maydoniga ma'lumotlar kiritilishi va "OK" tugmasini bosib ko'rsatilishi uchun;
  • bo'sh qator - "OK" tugmasini bosib, kirish maydoni ma'lumotlarni va koristuvachni o'tkazib yubormasligi bilanoq;
  • null - xuddi "Skasuvati" ni yozish yoki oynani yopish kabi, ma'lumotlar matn maydoniga kiritilganmi, muhim emas.

Eslatma: alert() , confirm() yoki prompt() usullaridan birining natijasi bo'lgan dialog oynasi, ya'ni. U koristuvachning nuqtaning Batkiv qo'shimchasiga (brauzeriga) kirishini bloklaydi, koristuvachning doklari dialog oynasini yopmaydi.

Masalan, u koristuvach nomidan so'raladi va u c id="nameUser" matn elementi natijasida ko'rsatiladi:

Masalan, koristuvachdan 8 raqamini taxmin qilishni so'rang:

... Raqamni taxmin qiling

Cross-Site Scripting (XSS) - farq, chunki u veb-sahifada mijoz tomonida (JavaScript) ko'rinadigan kodda ishlatiladi, chunki u boshqalar tomonidan ko'rib chiqiladi.

Mojarolar veb-sahifaga kiritish uchun haddan tashqari kuchga ega bo'lgan korystuvach kabi ma'lumotlarni filtrlashning yo'qligi bilan bog'liq. Muayyan misolda tushunish osonroq. Tasavvur qiling-a, mehmonlar kitobi tashqi ko'rinishni aks ettiruvchi koristuvachadan ma'lumotlarni qabul qilish uchun tan olingan dasturmi yoki yo'qmi. Ma'lumki, mehmonlar kitobi hech qanday tarzda kiritilishi kerak bo'lgan ma'lumotlarni qayta ko'rib chiqmaydi yoki filtrlamaydi, balki ularni shunchaki aks ettiradi.

Siz o'zingizning eng oddiy skriptingizni qo'shishingiz mumkin (oddiyroq narsa yo'q, siz PHPda yomon skriptlarni yozishingiz mumkin - bu kimdir buni qilish uchun juda boy). Lekin allaqachon yetarlicha tayyor variantlar mavjud. Masalan, men Dojo va OWASP Mutillidae II bilan tanishish haqida gapiryapman. Shunga o'xshash misol bor. Mustaqil Dojo muhitida so'rovlar uchun brauzerga o'ting: http://localhost/mutillidae/index.php?page=add-to-your-blog.php

Ba'zi koristuvachív vvív haqida nima deyish mumkin:

Keyin veb-sahifa ko'rsatiladi:

Vitannia! Sizning veb-saytingiz talab qilinadi.

Masalan, kodni shunday kiriting:

Vitannia! Sizning veb-saytingiz talab qilinadi.

Bu shunday ko'rinishi kerak:

Brauzerlar ko'p sonli saytlardan anonim cookie-fayllarni saqlaydi. Sayt terisi faqat u tomonidan saqlangan cookie-fayllarni olib tashlashi mumkin. Misol uchun, example.com sayti brauzeringizdan ba'zi cookie-fayllarni saqladi. Agar siz another.com saytiga kirsangiz, u sayt (mijoz va server skriptlari) cookie-fayllarga kira olmaydi, shuning uchun example.com saqlanadi.

Agar example.com XSSdan oldin tahlil qilingan bo'lsa, bu biz boshqa yo'l bilan yangi JavaScript kodiga o'tishimiz mumkinligini anglatadi va bu kod example.com sayti nomiga o'raladi! Tobto. Bu kod, masalan, example.com saytidagi cookie-fayllarga kirishni olib tashlaydi.

O'ylaymanki, hamma JavaScript-ni mahalliy aholining brauzerlarida ishlatishini eslaydi, ya'ni. XSS mavjudligi uchun shkidlivy kodini amalga oshirish veb-sayt tomonini ochadigan koristuvach ma'lumotlariga kirishni rad etadi.

Amalga oshirish kodi JavaScript-ni ishlatadigan barcha kodlarni o'z ichiga oladi, lekin o'zi:

  • siz ko'rayotgan saytga cookie-fayllarga kirishni rad etadi
  • eski ko'rinishga o'zgartirish kiritishingiz mumkin
  • almashish buferiga kirishni rad etadi
  • JavaScript-dagi dasturlardan foydalanishingiz mumkin, masalan, kí-loggerlar
  • BeEF ga obuna bo'ling
  • bu ichida.

Cookie-fayllarning eng oddiy misoli:

Haqiqatan ham, ogohlantirish XSS uchun vikoristovuetsya kamroq. Haqiqatan ham shkídlive korisne navantazhennya zdíysnyuê prihovaní dííí. Von prihovanno sv'yazuetsya z vyddalenim tajovuzkor server va yangi o'g'irlangan ma'lumotlarni uzatadi.

Vidi XSS

Eng muhimi, hidlaganlar uchun XSS haqida tushunishingiz kerak:

  • Saqlash (post)
  • Vidobrazhení (doimiy bo'lmagan)

Birinchisiga misol:

  • Tajovuzkor tomonidan kiritilgan, mehmon kitobiga maxsus tuzilgan xabar (sharh, forum, profil), serverga qanday kirish mumkin, koristuvachi tomonning fikrini so'rasa, iloji boricha tezroq serverdan zavantazhuetsya.
  • Buzg'unchi, masalan, SQL in'ektsiyasi orqali server ma'lumotlariga kirishni olib qo'ydi va zararli JavaScript kodi (kiloger yoki BeEF bilan) berilgan koristuvachevga o'xshash ma'lumotlarni o'g'irladi.

Nopoklikka misol:

  • Saytda qidiruv mavjud bo'lib, u qidiruv natijalari bilan bir vaqtda "Siz qidirdingiz: [qidiruvlar qatori]" kshtaltda ko'rsatiladi, bu ma'lumotlar bilan ular tegishli daraja bo'yicha filtrlanmaydi. Agar bunday tomon faqat unga majburlashi mumkin bo'lganlar uchun ishlatilsa, tajovuzkor boshqa koristuvach saytiga kuch yubormaguncha, hujum ishlamaydi. Jabrlanuvchiga yuborilgan kuchning o'rnini bosuvchi sifatida siz zararli skriptni qurbon ko'rgan neytral saytga joylashtirishni yutib olishingiz mumkin.

Boshqalar (masalan, doimiy bo'lmagan XSS nomuvofiqliklari kabi, bu tur doimiy XSSning boshqa turi bo'lishi mumkin) ko'rishadi:

  • DOM modellari

DOM-da XSS bazalarining xususiyatlari

Oddiy qilib aytganda, "ajoyib" qobiliyatsiz XSS ning zararli kodi, xuddi HTML kodi kabi ko'rib chiqilishi mumkin. Masalan, posilannya shunday unvonda shakllanadi:

http://example.com/search.php?q="/>

Va chiqish HTML kodini ochganingizda, shunga o'xshash narsani ko'rishingiz mumkin: