<?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: Darren</title>
    <description>The latest articles on DEV Community by Darren (@secondgatewp).</description>
    <link>https://dev.to/secondgatewp</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%2F4086831%2F8c32e601-2df0-44a2-9f89-8af967cd5049.png</url>
      <title>DEV Community: Darren</title>
      <link>https://dev.to/secondgatewp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/secondgatewp"/>
    <language>en</language>
    <item>
      <title>Looking for 100 technical testers: SecondGate (WordPress security &amp; passkeys, no cloud dependency)</title>
      <dc:creator>Darren</dc:creator>
      <pubDate>Thu, 20 Aug 2026 14:02:23 +0000</pubDate>
      <link>https://dev.to/secondgatewp/looking-for-100-technical-testers-secondgate-wordpress-security-passkeys-no-cloud-dependency-5b3</link>
      <guid>https://dev.to/secondgatewp/looking-for-100-technical-testers-secondgate-wordpress-security-passkeys-no-cloud-dependency-5b3</guid>
      <description>&lt;p&gt;We've spent the last few weeks trying to break our own plugin. We fuzzed the WebAuthn decoder with 200,000 adversarial inputs, found a bug where brute-force lockout could silently lock out every legitimate visitor sharing a CDN's IP, and once we went looking, found and fixed six separate places in the codebase making that same mistake. All of it is documented, versioned, and dated: &lt;a href="https://secondgatewp.com/security-testing-methodology/" rel="noopener noreferrer"&gt;https://secondgatewp.com/security-testing-methodology/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SecondGate is built local-first: no Composer dependencies, no third-party WebAuthn library, and nothing about your visitors is ever sent anywhere. All matching – country, IP, bot verification – happens on your own server against locally cached data. To be upfront about the outbound calls that do exist: Pro downloads curated IP blocklists for Microsoft Azure, DigitalOcean, Hetzner, and OVH on a schedule, and the vulnerability scanner checks your installed plugin/theme names against a public vuln database. That's data coming in, and software names going out – never anything about your visitors or their traffic.&lt;/p&gt;

&lt;p&gt;Now we want 100 technical testers, free full Pro access, to find what we haven't.&lt;/p&gt;

&lt;p&gt;What's actually been tested, not just built:&lt;/p&gt;

&lt;p&gt;Passkey/WebAuthn support with a custom CBOR decoder, checked against official RFC 8949 conformance vectors, real authenticator-captured data, and 200,000 fuzzed adversarial inputs.&lt;/p&gt;

&lt;p&gt;Country/IP blocking running on locally cached range data – no external lookups per visitor.&lt;/p&gt;

&lt;p&gt;Phantom decoy records: no legitimate path reaches them, so a hit is a strong signal someone's enumerating your site.&lt;/p&gt;

&lt;p&gt;Behavioral login-cadence sliding-window rate limiting.&lt;/p&gt;

&lt;p&gt;Token-chained audit logs designed to survive administrative compromise.&lt;/p&gt;

&lt;p&gt;wp-config.php kill switches that persist consistently across every bootstrap path.&lt;/p&gt;

&lt;p&gt;What we're honest about not having finished: the blocking paths that can actually lock someone out don't have real end-to-end regression tests yet. Several of the signal and logging paths are code-reviewed, but not yet automated.&lt;/p&gt;

&lt;p&gt;What we are looking for: developers, agency owners, and sysadmins running custom WordPress stacks or client sites who will actually push on edge cases, not just install and forget. Real findings go straight back into the methodology page, with your input credited if you want it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
      <category>wordpress</category>
      <category>php</category>
    </item>
  </channel>
</rss>
