Описание алгоритма Asosiy vazifalar algoritmini yozish haqida задач
Все основные задачи Ushbu dasturning barcha asosiy vazifalari программы для ускорения работы parallel ravishda amalga oshiriladi параллельно va являются наследниками browserrunnable mavhum sinfining merosxo'rlari bo'lib, в bu o'z navbatida реализует Runnable interfeysini amalga oshiradi. BrowserRunnable отвечает за связка oqim to'plami va brauzer oynalari uchun mas'uldir браузера, а интерфейс Runnable va Runnable interfeysi ko'p ishlov berish interfeysi.
Barcha vazifalar находятся в пакете vazifalar paketida.
LinkFinder - класс, отвечающий за поиск ссылок sahifadagi havolalarni qidirish странице va формирование sayt xaritasini yaratish uchun mas'ul bo'lgan sinf.
XssPreparer-bu zaifliklarni tekshirish uchun potentsial ravishda paydo bo'lishi mumkin bo'lgan shakllarni topish uchun mas'ul bo'lgan sinf va potentsial zaifliklarni на ikki turga bo'lish: aks ettirilgan (aks ettirilgan) va saqlangan (saqlangan).
ReflectedXssChecker-XSS zaifliklarini aks ettirish (aks ettirish) uchun mas'ul bo'lgan sinf .
StoredXssChecker - saqlangan (saqlangan) XSS zaifliklarini topish uchun mas'ul bo'lgan sinf .
Диаграмма Sinf diagrammasi на rasmda ko'rsatilgan. 1.
Shakl 1 - Диаграмма классов paket vazifasi sinf diagrammasi
Создание карты Sayt xaritasining kechikishi bilan. LinkFinder
Ushbu dastur tomonidan hal qilinadigan eng muhim vazifalardan biri sayt xaritasini yaratishdir. Sayt xaritasi oddiy kitobning "mazmuni" bo'limiga o'xshaydi . Navigatsiya elementi sifatida ishlatiladi. Sayt xaritasi saytda mavjud bo'lgan bo'limlarning to'liq ro'yxatini va/yoki barcha sahifalarni taqdim etadi. [8] agar ошибку на siz ushbu bosqichda xato qilsangiz, hatto mavjud bo'lgan полный список barcha xss in'ektsiyalarining to'liq ro'yxati xss-инъекций va бесконечное время для того, ularni sinash uchun cheksiz vaqt их опробовать, нельзя будет гарантировать bo'lsa ham, zaifliklarning etishmasligi kafolatlanmaydi.
Получив доступ к Sahifaning HTML kodiga kirganingizdan страницы, LinkFinder начинает so'ng, LinkFinder sahifani havolalar uchun tahlil qilishni boshlaydi, ya'ni yorlig'i. Sahifadagi barcha havolalarni tanlab странице, начинается парсинг атрибутов тега , tegining atributlarini ajratish boshlanadi. Если Agar yorliq находится атрибут href xususiyatiga ega bo'lsa, uning qiymati tahlil qilinadi: проверяется, является ли u ichki havola yoki yo'qligini tekshiradi.
Не маловажным является и тот факт, что в качестве атрибута href может Bundan tashqari, href atributi sifatida faqat sahifaga havola emas, balki ma'lum bir faylga, masalan, Microsoft Word hujjatiga kengaytma bilan bog'lanish ham ahamiyatsiz emas .doc yoki фильм, katta hajmdagi filmga havola. Для того, чтобы не совершать ошибок, влекущих Katta потери trafikni yo'qotish va практически keraksiz faylni yuklab olish bilan shug'ullanadigan oqimning deyarli harakatsizligini keltirib chiqaradigan xatoliklarni bartaraf qilish uchun потока, href atributining qiymati ham filtrlanishi kerak. Bo'sh tugashga ega bo'lgan havolalarni yo'q qilish to'g'risida qaror qabul qilindi va veb-sahifalarning eng mashhur formatlarida tugamaydi:".html”, “.htm”, “.php”, “.phtml”, “.shtml”, “.asp”, “.aspx”, “.xml”.
Agar havola topilsa va u filtrlash mexanizmidan o'tgan bo'lsa, unda отрезается часть строки argumentlar bilan satrning bir qismi kesiladi аргументами, если va agar mavjud bo'lsa va ссылка добавляется в LinkContainer maxsus структуру ma'lumotlar strukturasiga havola qo'shiladi.
LinkContainer standart JDK ma'lumotlar tuzilishi (Java Developer Kit) LinkedHashSet uchun voris hisoblanadi. LinkedContainer обеспечивает существование единственного экземпляра данной ссылки, keraksiz takrorlashni oldini olish uchun ushbu havolaning yagona nusxasini taqdim etadi избежать ненужных повторений, va позволяет хранить havolalarni в qo'shish tartibida saqlashga imkon beradi. После Muvaffaqiyatli qo'shilgandan so'ng LinkContainer вызывает , LinkContainer callback- onlinkadded(string url) funktsiyasini onlinkcontainercallback interfeysiga olib keladi. Callback ob'ektining roli выступает основной dvigatel dasturining asosiy dvigatelidir, bu esa в o'z navbatida olingan URL bilan yangi linkfinder vazifasini yaratadi va uni пул oqim hovuziga qo'shadi.
Do'stlaringiz bilan baham: |