<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: patrick ivanuell</title>
    <description>The latest articles on DEV Community by patrick ivanuell (@patrick_ivanuell_be019c61).</description>
    <link>https://dev.to/patrick_ivanuell_be019c61</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3567680%2Facf29542-1485-46b9-af0e-515e363bfdc6.jpeg</url>
      <title>DEV Community: patrick ivanuell</title>
      <link>https://dev.to/patrick_ivanuell_be019c61</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/patrick_ivanuell_be019c61"/>
    <language>en</language>
    <item>
      <title>hii</title>
      <dc:creator>patrick ivanuell</dc:creator>
      <pubDate>Wed, 21 Oct 2026 10:03:15 +0000</pubDate>
      <link>https://dev.to/patrick_ivanuell_be019c61/hii-o4</link>
      <guid>https://dev.to/patrick_ivanuell_be019c61/hii-o4</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/patrick_ivanuell_be019c61/building-voidspider-a-modern-approach-to-web-automation-and-crawling-10ad" class="crayons-story__hidden-navigation-link"&gt;VoidSpider: Building a Visual Security Scanner for Websites and Local Code&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/patrick_ivanuell_be019c61" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3567680%2Facf29542-1485-46b9-af0e-515e363bfdc6.jpeg" alt="patrick_ivanuell_be019c61 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/patrick_ivanuell_be019c61" class="crayons-story__secondary fw-medium m:hidden"&gt;
              patrick ivanuell
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                patrick ivanuell
                
                
              
              &lt;div id="story-author-preview-content-4888573" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/patrick_ivanuell_be019c61" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3567680%2Facf29542-1485-46b9-af0e-515e363bfdc6.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;patrick ivanuell&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/patrick_ivanuell_be019c61/building-voidspider-a-modern-approach-to-web-automation-and-crawling-10ad" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/patrick_ivanuell_be019c61/building-voidspider-a-modern-approach-to-web-automation-and-crawling-10ad" id="article-link-4888573"&gt;
          VoidSpider: Building a Visual Security Scanner for Websites and Local Code
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/patrick_ivanuell_be019c61/building-voidspider-a-modern-approach-to-web-automation-and-crawling-10ad" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/patrick_ivanuell_be019c61/building-voidspider-a-modern-approach-to-web-automation-and-crawling-10ad#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>automation</category>
      <category>webdev</category>
      <category>webscraping</category>
    </item>
    <item>
      <title>VoidSpider: Building a Visual Security Scanner for Websites and Local Code</title>
      <dc:creator>patrick ivanuell</dc:creator>
      <pubDate>Wed, 21 Oct 2026 09:59:31 +0000</pubDate>
      <link>https://dev.to/patrick_ivanuell_be019c61/building-voidspider-a-modern-approach-to-web-automation-and-crawling-10ad</link>
      <guid>https://dev.to/patrick_ivanuell_be019c61/building-voidspider-a-modern-approach-to-web-automation-and-crawling-10ad</guid>
      <description>&lt;h1&gt;
  
  
  VoidSpider: Building a Visual Security Scanner for Websites and Local Code
&lt;/h1&gt;

&lt;p&gt;Hi everyone! 👋&lt;/p&gt;

&lt;p&gt;I've been working on an open-source project called &lt;strong&gt;VoidSpider&lt;/strong&gt;, a Node.js-based security auditing and monitoring tool for websites and local codebases.&lt;/p&gt;

&lt;p&gt;The idea behind VoidSpider is simple: security findings should not only be detected, but also be easy to understand, monitor, and investigate.&lt;/p&gt;

&lt;p&gt;Instead of relying entirely on terminal output and static reports, I wanted to build a tool that combines security checks with a real-time, interactive visualization.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/patrickivanuellf/VoidSpider" rel="noopener noreferrer"&gt;https://github.com/patrickivanuellf/VoidSpider&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🕷️ What Is VoidSpider?
&lt;/h2&gt;

&lt;p&gt;VoidSpider is a security auditing tool designed to inspect websites and local projects for potential security issues.&lt;/p&gt;

&lt;p&gt;It has two primary operating modes.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Website Security Auditing
&lt;/h3&gt;

&lt;p&gt;The website mode inspects an authorized target for potential security misconfigurations, exposed resources, unsafe HTTP configurations, TLS issues, and other indicators that may deserve investigation.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Local Code Auditing
&lt;/h3&gt;

&lt;p&gt;The local mode performs static inspection of project files without executing them. It looks for potential secrets, suspicious files, risky code patterns, insecure configurations, and other issues that developers may want to review.&lt;/p&gt;

&lt;p&gt;VoidSpider can repeat scans, compare findings between cycles, and report newly discovered or resolved issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why I Built It
&lt;/h2&gt;

&lt;p&gt;Security tools can generate a lot of information, especially when a project contains hundreds of pages, files, or dependencies.&lt;/p&gt;

&lt;p&gt;The challenge is not always finding a potential issue. Sometimes, the challenge is understanding what is being inspected, what changed, and which findings deserve attention first.&lt;/p&gt;

&lt;p&gt;I wanted to experiment with a more visual approach.&lt;/p&gt;

&lt;p&gt;That idea became the core of VoidSpider: a spider-inspired interface that moves between nodes representing pages and files being inspected.&lt;/p&gt;

&lt;p&gt;The dashboard combines this visualization with scan telemetry, findings, severity levels, security scores, and live updates.&lt;/p&gt;

&lt;p&gt;The goal is to make security auditing more observable and easier to follow without sacrificing its technical purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Interactive Real-Time Dashboard
&lt;/h3&gt;

&lt;p&gt;VoidSpider includes an interactive dashboard that visualizes scanning activity and displays security findings.&lt;/p&gt;

&lt;p&gt;The dashboard uses Server-Sent Events (SSE) to stream updates from the Node.js server, so users can monitor scan progress without repeatedly refreshing the page.&lt;/p&gt;

&lt;p&gt;The interface includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive graph visualization&lt;/li&gt;
&lt;li&gt;Scan status and telemetry&lt;/li&gt;
&lt;li&gt;Security findings and severity levels&lt;/li&gt;
&lt;li&gt;Security score and report access&lt;/li&gt;
&lt;li&gt;Live updates when findings change&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Website Security Checks
&lt;/h3&gt;

&lt;p&gt;The website scanner performs passive checks for potential issues, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Missing or weak HTTP security headers&lt;/li&gt;
&lt;li&gt;Insecure cookie configurations&lt;/li&gt;
&lt;li&gt;Mixed content and unsafe form configurations&lt;/li&gt;
&lt;li&gt;Exposed sensitive files and source maps&lt;/li&gt;
&lt;li&gt;Potentially exposed credentials and API keys&lt;/li&gt;
&lt;li&gt;Broken links and server errors&lt;/li&gt;
&lt;li&gt;Information disclosure and stack traces&lt;/li&gt;
&lt;li&gt;TLS certificate and configuration issues&lt;/li&gt;
&lt;li&gt;DNS and email security configuration problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These findings are intended to help developers identify configurations and resources that deserve further investigation.&lt;/p&gt;

&lt;p&gt;A scanner finding is not automatically proof of an exploitable vulnerability. Results should be validated in the context of the target application.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Local Code and Project Auditing
&lt;/h3&gt;

&lt;p&gt;VoidSpider can inspect a local project directory or individual files.&lt;/p&gt;

&lt;p&gt;Its static checks cover areas such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Potentially exposed secrets and credentials&lt;/li&gt;
&lt;li&gt;Suspicious files and backup artifacts&lt;/li&gt;
&lt;li&gt;Risky code patterns in supported languages&lt;/li&gt;
&lt;li&gt;Insecure project and container configurations&lt;/li&gt;
&lt;li&gt;Dependency versions and known vulnerabilities&lt;/li&gt;
&lt;li&gt;Hidden Unicode characters and suspicious text patterns&lt;/li&gt;
&lt;li&gt;Potential webshell and code-obfuscation indicators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The local scanner reads files rather than executing the target project. Its findings can help developers identify issues before deployment.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Dependency Vulnerability Checks
&lt;/h3&gt;

&lt;p&gt;VoidSpider supports dependency checks for supported package formats and ecosystems.&lt;/p&gt;

&lt;p&gt;It can use the OSV.dev vulnerability database to identify known vulnerabilities associated with detected package versions.&lt;/p&gt;

&lt;p&gt;This feature is intended as an additional source of information, not a replacement for a dedicated dependency-management or software composition analysis platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Change Monitoring and Reporting
&lt;/h3&gt;

&lt;p&gt;VoidSpider compares findings between scan cycles to help identify new issues and issues that appear to have been resolved.&lt;/p&gt;

&lt;p&gt;It supports reports in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Markdown for human-readable summaries&lt;/li&gt;
&lt;li&gt;JSON for structured processing&lt;/li&gt;
&lt;li&gt;SARIF for compatible code-scanning workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Optional Telegram notifications can also alert users about new findings.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Custom Rules and Optional Integrations
&lt;/h3&gt;

&lt;p&gt;The project supports custom security rules for supported checks.&lt;/p&gt;

&lt;p&gt;Optional integrations include AI-assisted finding triage and OWASP ZAP for additional security testing.&lt;/p&gt;

&lt;p&gt;These integrations are optional. The basic scanner does not require an AI API key or an OWASP ZAP installation.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 A Security-First Approach
&lt;/h2&gt;

&lt;p&gt;VoidSpider is designed for authorized security auditing.&lt;/p&gt;

&lt;p&gt;For website targets outside localhost, the tool requires an explicit ownership-confirmation flag. Passive checks are the default, and active exploitation is not part of the default scanning process.&lt;/p&gt;

&lt;p&gt;The optional OWASP ZAP active-scanning integration has a different risk profile and should only be used against targets for which the operator has explicit authorization.&lt;/p&gt;

&lt;p&gt;The dashboard binds to localhost by default, and the scanner operates on the target supplied at startup.&lt;/p&gt;

&lt;p&gt;I also considered how sensitive information should appear in findings. When potential secrets are detected, the scanner is designed to report their types and locations rather than expose their actual values in findings.&lt;/p&gt;

&lt;p&gt;These safeguards are useful design choices, but they do not eliminate all security risks. Users should review the documentation and configure the tool appropriately for their environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Getting Started
&lt;/h2&gt;

&lt;p&gt;VoidSpider requires &lt;strong&gt;Node.js 18.14 or later&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Clone the Repository
&lt;/h3&gt;

&lt;p&gt;Open your terminal and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/patrickivanuellf/VoidSpider.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Enter the Project Directory
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;VoidSpider
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Install Dependencies
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Audit a Local Project
&lt;/h3&gt;

&lt;p&gt;Provide a path to a project or directory you want to inspect:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node server.js ./your-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;./your-project&lt;/code&gt; with the actual path to your local project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Audit an Authorized Website
&lt;/h3&gt;

&lt;p&gt;For a website you own or have explicit permission to test, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node server.js https://your-domain.com &lt;span class="nt"&gt;--saya-pemilik-situs&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;https://your-domain.com&lt;/code&gt; with your authorized target.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Open the Dashboard
&lt;/h3&gt;

&lt;p&gt;Once the server is running, open this address in your browser:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://127.0.0.1:3000" rel="noopener noreferrer"&gt;http://127.0.0.1:3000&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You should then be able to access the dashboard and monitor the scan.&lt;/p&gt;

&lt;p&gt;For additional commands, environment variables, reports, integrations, and usage details, consult the repository README.&lt;/p&gt;

&lt;p&gt;📖 &lt;strong&gt;Full Documentation:&lt;/strong&gt; &lt;a href="https://github.com/patrickivanuellf/VoidSpider/blob/main/README.md" rel="noopener noreferrer"&gt;https://github.com/patrickivanuellf/VoidSpider/blob/main/README.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 What I Want to Improve Next
&lt;/h2&gt;

&lt;p&gt;VoidSpider is an ongoing open-source project, and there is still room to improve its detection quality, usability, and extensibility.&lt;/p&gt;

&lt;p&gt;Some areas I would like to explore further include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving detection accuracy and reducing false positives&lt;/li&gt;
&lt;li&gt;Making findings easier to prioritize&lt;/li&gt;
&lt;li&gt;Improving dashboard performance for larger projects&lt;/li&gt;
&lt;li&gt;Expanding useful checks for different development environments&lt;/li&gt;
&lt;li&gt;Improving integration with existing development workflows&lt;/li&gt;
&lt;li&gt;Making reports more actionable for developers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm also interested in hearing how other developers approach security monitoring and which findings they consider most useful in their daily workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤝 Feedback Is Welcome
&lt;/h2&gt;

&lt;p&gt;I'd love to hear feedback from developers, security researchers, and open-source contributors.&lt;/p&gt;

&lt;p&gt;A few questions for the community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What features would make a visual security scanner more useful?&lt;/li&gt;
&lt;li&gt;Which security checks do you find most valuable during development?&lt;/li&gt;
&lt;li&gt;How would you improve the way security findings are displayed?&lt;/li&gt;
&lt;li&gt;What integrations would you like to see in a project like this?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suggestions, bug reports, and constructive criticism are welcome.&lt;/p&gt;

&lt;p&gt;If you find the project interesting, feel free to explore the source code, open an issue, or contribute ideas.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Explore VoidSpider
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/patrickivanuellf/VoidSpider" rel="noopener noreferrer"&gt;https://github.com/patrickivanuellf/VoidSpider&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;README and Documentation:&lt;/strong&gt; &lt;a href="https://github.com/patrickivanuellf/VoidSpider/blob/main/README.md" rel="noopener noreferrer"&gt;https://github.com/patrickivanuellf/VoidSpider/blob/main/README.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading, and happy building! 🕷️&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
