#!/usr/bin/env python3 """ Browser Validator - Playwright-based security finding validation. Provides browser-based validation for security findings: - Navigate to target URLs with payloads - Detect security triggers (XSS dialogs, error patterns, etc.) - Capture screenshots at each validation step - Store evidence in structured per-finding directories Screenshots are stored at: reports/screenshots/{finding_id}/ """ import asyncio import base64 import logging from datetime import datetime from pathlib import Path from typing import Dict, List, Optional logger = logging.getLogger(__name__) try: from playwright.async_api import async_playwright, Page, Browser, BrowserContext HAS_PLAYWRIGHT = True except ImportError: HAS_PLAYWRIGHT = False logger.debug("Playwright not installed. Browser validation disabled.") # Known security trigger patterns in page content SECURITY_TRIGGERS = { 'xss': ['