v2.0: исправлены критические баги, добавлены 4 новые проверки, 4-фазный cookie-аудит, retry-логика, YAML-словари, LLM-анализ, тесты
Исправлено: - engine: _calculate_score() при ошибке загрузки (score не 100 для мёртвых сайтов) - privacy_link: замена page.goto() на aiohttp (гонка данных) - form_checkbox: 3-уровневый поиск label + dark-pattern detection - server_location: синхронный urllib → aiohttp - api/server: перепутанные request/response модели в batch - main.py: csv --checks флаг - engine: фазовая модель (cookie_audit отдельно, остальные параллельно) - engine: retry-логика (3 попытки, exponential backoff) - PDF: emoji заменены на текст (WeasyPrint) Добавлено: - consent_doc: проверка отдельного согласия на обработку ПД - operator_info: проверка ИНН/ОГРН/DPO (читает главную + политику) - cookie_audit: 4-фазный аудит (load→detect→reject→compare) - llm_policy: опциональный LLM-анализ 16 разделов (--deep) - external_scripts: YAML-словари trackers.yaml (critical/warning/russian) - logging (output.py), .gitignore, pyproject.toml - smoke-тесты (16/16)
This commit is contained in:
1 parent
7fb417dad5
commit
b9db935389
24 files changed
+1725
-286
No files matched your search
@@ -4,22 +4,35 @@ from scanner.checks.privacy_link import PrivacyLinkCheck
|
||||
from scanner.checks.form_checkbox import FormCheckboxCheck
|
||||
from scanner.checks.server_location import ServerLocationCheck
|
||||
from scanner.checks.external_scripts import ExternalScriptsCheck
|
||||
from scanner.checks.consent_doc import ConsentDocCheck
|
||||
from scanner.checks.operator_info import OperatorInfoCheck
|
||||
from scanner.checks.cookie_audit import CookieAuditCheck
|
||||
from scanner.checks.llm_policy import LLMPolicyCheck
|
||||
|
||||
# Реестр всех проверок — новые проверки автоматически регистрируются здесь
|
||||
# Реестр всех проверок
|
||||
ALL_CHECKS: dict[str, type[BaseCheck]] = {
|
||||
"cookie_banner": CookieBannerCheck,
|
||||
"cookie_audit": CookieAuditCheck,
|
||||
"privacy_link": PrivacyLinkCheck,
|
||||
"form_checkbox": FormCheckboxCheck,
|
||||
"server_location": ServerLocationCheck,
|
||||
"external_scripts": ExternalScriptsCheck,
|
||||
"consent_doc": ConsentDocCheck,
|
||||
"operator_info": OperatorInfoCheck,
|
||||
"llm_policy": LLMPolicyCheck, # Опциональный, запускается отдельно
|
||||
}
|
||||
|
||||
QUICK_CHECKS = [
|
||||
"cookie_audit", "privacy_link", "form_checkbox",
|
||||
"server_location", "external_scripts",
|
||||
"consent_doc", "operator_info",
|
||||
]
|
||||
"""Быстрые проверки без LLM — запускаются по умолчанию."""
|
||||
|
||||
__all__ = [
|
||||
"BaseCheck",
|
||||
"CookieBannerCheck",
|
||||
"PrivacyLinkCheck",
|
||||
"FormCheckboxCheck",
|
||||
"ServerLocationCheck",
|
||||
"ExternalScriptsCheck",
|
||||
"ALL_CHECKS",
|
||||
"CookieBannerCheck", "PrivacyLinkCheck", "FormCheckboxCheck",
|
||||
"ServerLocationCheck", "ExternalScriptsCheck",
|
||||
"ConsentDocCheck", "OperatorInfoCheck", "LLMPolicyCheck",
|
||||
"ALL_CHECKS", "QUICK_CHECKS",
|
||||
]
|
||||
Reference in new issue
Block a user