Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Top 10 Use Cases of Vibe Coding in Large-Scale Node.js Applications

      September 3, 2025

      Cloudsmith launches ML Model Registry to provide a single source of truth for AI models and datasets

      September 3, 2025

      Kong Acquires OpenMeter to Unlock AI and API Monetization for the Agentic Era

      September 3, 2025

      Microsoft Graph CLI to be retired

      September 2, 2025

      ‘Cronos: The New Dawn’ was by far my favorite experience at Gamescom 2025 — Bloober might have cooked an Xbox / PC horror masterpiece

      September 4, 2025

      ASUS built a desktop gaming PC around a mobile CPU — it’s an interesting, if flawed, idea

      September 4, 2025

      Hollow Knight: Silksong arrives on Xbox Game Pass this week — and Xbox’s September 1–7 lineup also packs in the horror. Here’s every new game.

      September 4, 2025

      The Xbox remaster that brought Gears to PlayStation just passed a huge milestone — “ending the console war” and proving the series still has serious pulling power

      September 4, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Magento (Adobe Commerce) or Optimizely Configured Commerce: Which One to Choose

      September 4, 2025
      Recent

      Magento (Adobe Commerce) or Optimizely Configured Commerce: Which One to Choose

      September 4, 2025

      Updates from N|Solid Runtime: The Best Open-Source Node.js RT Just Got Better

      September 3, 2025

      Scale Your Business with AI-Powered Solutions Built for Singapore’s Digital Economy

      September 3, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      ‘Cronos: The New Dawn’ was by far my favorite experience at Gamescom 2025 — Bloober might have cooked an Xbox / PC horror masterpiece

      September 4, 2025
      Recent

      ‘Cronos: The New Dawn’ was by far my favorite experience at Gamescom 2025 — Bloober might have cooked an Xbox / PC horror masterpiece

      September 4, 2025

      ASUS built a desktop gaming PC around a mobile CPU — it’s an interesting, if flawed, idea

      September 4, 2025

      Hollow Knight: Silksong arrives on Xbox Game Pass this week — and Xbox’s September 1–7 lineup also packs in the horror. Here’s every new game.

      September 4, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Security»Common Vulnerabilities and Exposures (CVEs)»CVE-2025-53935 – WeGIA Reflected Cross-Site Scripting (XSS)

    CVE-2025-53935 – WeGIA Reflected Cross-Site Scripting (XSS)

    July 16, 2025

    CVE ID : CVE-2025-53935

    Published : July 16, 2025, 4:15 p.m. | 2 hours, 28 minutes ago

    Description : WeGIA is an open source web manager with a focus on the Portuguese language and charitable institutions. A Reflected Cross-Site Scripting (XSS) vulnerability was identified in the `personalizacao_selecao.php` endpoint of the WeGIA application prior to version 3.4.5. This vulnerability allows attackers to inject malicious scripts in the `id` parameter. Version 3.4.5 fixes the issue.

    Severity: 0.0 | NA

    Visit the link for more details, such as CVSS details, affected products, timeline, and more…

    Source: Read More

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleCVE-2025-53934 – WeGIA Stored Cross-Site Scripting (XSS) Vulnerability
    Next Article CVE-2025-53929 – WeGIA Stored Cross-Site Scripting Vulnerability

    Related Posts

    Development

    CISA Adds TP-Link and WhatsApp Flaws to KEV Catalog Amid Active Exploitation

    September 4, 2025
    Development

    Pennsylvania Attorney General’s Office Recovers from Ransomware Attack

    September 4, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    CVE-2025-5657 – PHPGurukul Complaint Management System SQL Injection Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    CVE-2025-6125 – PHPGurukul Rail Pass Management System Cross Site Scripting Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    HelloTDS Unmasked: Covert Traffic System Funnels Millions to FakeCaptcha Malware!

    Security

    Top Local LLMs for Coding (2025)

    Machine Learning

    Highlights

    Development

    How to Build a Custom Visual Testing Tool with Selenium: A Practical Guide

    June 25, 2025

    IntroductionVisual testing is crucial for ensuring UI consistency across releases. While commercial tools exist, sometimes you need a custom solution tailored to your specific needs. This guide walks you through creating your own visual testing tool using Selenium and Python.Table of ContentsIntroductionWhy Build a Custom Visual Testing Tool?Core ComponentsImplementation GuideAdvanced FeaturesIntegration & ScalingReporting & AnalysisCommon Challenges & SolutionsLimitations & ConsiderationsConclusion & Next StepsWhy Build a Custom Solution?Specific requirements not met by commercial toolsCost savings for simple projectsComplete control over comparison logicLearning opportunity about image processingCore Components1. Screenshot Capture with Seleniumpythonfrom selenium import webdriver
    import os

    def capture_screenshot(url, filename):
    “””Capture screenshot of a webpage”””
    driver = webdriver.Chrome()
    driver.get(url)

    # Ensure screenshot directory exists
    os.makedirs(“screenshots”, exist_ok=True)
    screenshot_path = f”screenshots/{filename}”

    driver.save_screenshot(screenshot_path)
    driver.quit()
    return screenshot_path2. Image Comparison Enginepythonfrom PIL import Image, ImageChops
    import math

    def compare_images(baseline_path, current_path, diff_path=None, threshold=0.95):
    “””
    Compare two images with similarity threshold
    Returns: (is_similar, similarity_score)
    “””
    baseline = Image.open(baseline_path).convert(‘RGB’)
    current = Image.open(current_path).convert(‘RGB’)

    # Check dimensions
    if baseline.size != current.size:
    return False, 0

    # Calculate difference
    diff = ImageChops.difference(baseline, current)
    diff_pixels = sum(
    sum(1 for pixel in diff.getdata() if any(c > 0 for c in pixel))
    )
    total_pixels = baseline.size[0] * baseline.size[1]
    similarity = 1 – (diff_pixels / total_pixels)

    # Save diff image if needed
    if diff_path and diff_pixels > 0:
    diff.save(diff_path)

    return similarity >= threshold, similarity3. Baseline Management Systempythonimport json
    from datetime import datetime

    class BaselineManager:
    def __init__(self, baseline_dir=”baselines”):
    self.baseline_dir = baseline_dir
    os.makedirs(baseline_dir, exist_ok=True)

    def save_baseline(self, name, image_path):
    “””Save a new baseline with metadata”””
    timestamp = datetime.now().isoformat()
    baseline_path = f”{self.baseline_dir}/{name}.png”
    metadata = {
    “created”: timestamp,
    “source”: image_path
    }

    # Save image
    Image.open(image_path).save(baseline_path)

    # Save metadata
    with open(f”{baseline_dir}/{name}.json”, ‘w’) as f:
    json.dump(metadata, f)

    return baseline_pathAdvanced Features1. Region-Specific Comparisonpythondef compare_regions(baseline_path, current_path, regions, threshold=0.95):
    “””
    Compare specific regions of images
    regions: List of (x, y, width, height) tuples
    “””
    baseline = Image.open(baseline_path)
    current = Image.open(current_path)
    results = []

    for region in regions:
    x, y, w, h = region
    baseline_crop = baseline.crop((x, y, x+w, y+h))
    current_crop = current.crop((x, y, x+w, y+h))

    is_similar, score = compare_images(
    baseline_crop, current_crop, threshold=threshold
    )
    results.append((region, is_similar, score))

    return results2. Dynamic Content Maskingpythondef mask_dynamic_regions(image_path, regions, output_path=None):
    “””
    Mask dynamic content regions with black rectangles
    “””
    img = Image.open(image_path)
    draw = ImageDraw.Draw(img)

    for region in regions:
    x, y, w, h = region
    draw.rectangle((x, y, x+w, y+h), fill=’black’)

    if output_path:
    img.save(output_path)
    return imgPutting It All Togetherpythondef run_visual_test(url, test_name, threshold=0.95):
    “””Complete visual test workflow”””
    # Setup
    bm = BaselineManager()
    current_path = capture_screenshot(url, f”current_{test_name}.png”)

    # Check if baseline exists
    baseline_path = f”baselines/{test_name}.png”
    if not os.path.exists(baseline_path):
    print(f”Creating new baseline for {test_name}”)
    bm.save_baseline(test_name, current_path)
    return True

    # Compare images
    diff_path = f”diffs/diff_{test_name}.png”
    is_similar, score = compare_images(
    baseline_path, current_path, diff_path, threshold
    )

    # Generate report
    report = {
    “test_name”: test_name,
    “passed”: is_similar,
    “similarity_score”: score,
    “diff_image”: diff_path if not is_similar else None,
    “timestamp”: datetime.now().isoformat()
    }

    return reportHandling Common ChallengesCross-Browser VariationsCreate separate baselines per browserAdjust similarity thresholds per browserResponsive TestingTest at multiple viewport sizesUse device emulation in SeleniumTest MaintenanceImplement baseline versioningAdd approval workflow for new baselinesPerformance OptimizationCache screenshotsParallelize testsIntegration with Test Frameworkspythonimport unittest

    class VisualTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    cls.bm = BaselineManager()

    def test_homepage_layout(self):
    report = run_visual_test(
    “https://example.com”,
    “homepage_desktop”,
    threshold=0.98
    )
    self.assertTrue(report[‘passed’],
    f”Visual regression detected. Similarity: {report[‘similarity_score’]}”)Reporting and Analysispythondef generate_html_report(test_reports):
    “””Generate visual test HTML report”””
    html = “””
    <html><head><title>Visual Test Report</title></head>
    <body><h1>Visual Test Results</h1>
    <table border=”1″>
    <tr>
    <th>Test</th>
    <th>Status</th>
    <th>Similarity</th>
    <th>Diff</th>
    </tr>
    “””

    for report in test_reports:
    status = “PASS” if report[‘passed’] else “FAIL”
    color = “green” if report[‘passed’] else “red”
    diff_link = f'<a href=”{report[“diff_image”]}”>View</a>’ if report[“diff_image”] else “None”

    html += f”””
    <tr>
    <td>{report[‘test_name’]}</td>
    <td style=”color:{color}”>{status}</td>
    <td>{report[‘similarity_score’]:.2%}</td>
    <td>{diff_link}</td>
    </tr>
    “””

    html += “</table></body></html>”
    return htmlScaling Your SolutionParallel ExecutionUse Selenium GridImplement multiprocessingBaseline ManagementStore baselines in cloud storageAdd metadata taggingCI/CD IntegrationAdd as a test step in your pipelineConfigure failure thresholdsLimitations to ConsiderMaintenance overhead for baseline updatesBrowser-specific rendering differencesPerformance impact of image processingLimited to pixel comparison (no semantic understanding)ConclusionBuilding a custom visual testing tool gives you flexibility but requires careful implementation. Start small with critical pages, then expand as needed. Consider these enhancements:Add machine learning for smarter diff detectionImplement cloud storage for baselinesCreate a dashboard for trend analysisAdd support for component-level testingRemember that commercial tools might become more cost-effective as your needs grow, but a custom solution can be perfect for specific requirements.

    Mapollage – photo kml generator for Google Earth

    July 15, 2025

    Microsoft is investigating Windows 11 KB5063878 SSD data corruption/failure issue

    August 20, 2025

    CVE-2025-6474 – Code-projects Inventory Management System SQL Injection Vulnerability

    June 22, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.