<?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>Forem: Raz Azulay</title>
    <description>The latest articles on Forem by Raz Azulay (@razazu).</description>
    <link>https://forem.com/razazu</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3855332%2F87bbe53b-2087-40fb-b6c1-cb1e0952e152.jpeg</url>
      <title>Forem: Raz Azulay</title>
      <link>https://forem.com/razazu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/razazu"/>
    <language>en</language>
    <item>
      <title>I Scanned 447 Websites. AI-Built Sites Have 3x More High-Severity Vulnerabilities.</title>
      <dc:creator>Raz Azulay</dc:creator>
      <pubDate>Mon, 06 Apr 2026 13:02:17 +0000</pubDate>
      <link>https://forem.com/razazu/i-scanned-447-websites-ai-built-sites-have-3x-more-high-severity-vulnerabilities-3708</link>
      <guid>https://forem.com/razazu/i-scanned-447-websites-ai-built-sites-have-3x-more-high-severity-vulnerabilities-3708</guid>
      <description>&lt;p&gt;I'm Raz. I've been building a security scanner called UNPWNED for the past few months. It runs thousands of checks across dozens of scanners on any website - headers, DNS, SSL, exposed files, secrets, you name it.&lt;/p&gt;

&lt;p&gt;After 447 scans and 3,993 findings, I have enough data to share. Some of this stuff genuinely surprised me.&lt;/p&gt;

&lt;h2&gt;
  
  
  The big picture
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;447 sites scanned, 3,993 vulnerabilities found&lt;/li&gt;
&lt;li&gt;Average site has 8.9 security issues&lt;/li&gt;
&lt;li&gt;Average score: 73.1 out of 100&lt;/li&gt;
&lt;li&gt;Only 16.3% scored A or A+&lt;/li&gt;
&lt;li&gt;37% scored C (the most common grade)&lt;/li&gt;
&lt;li&gt;53% scored C or worse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most websites aren't terrible. They're just... mediocre. A bunch of missing headers and DNS records that nobody thought to configure.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI-built vs human-built - this is the big one
&lt;/h2&gt;

&lt;p&gt;I started tagging sites that showed signals of being AI-generated (Lovable, Bolt, Cursor, v0 patterns). The gap is real:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;AI-Built&lt;/th&gt;
&lt;th&gt;Human-Built&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Avg Score&lt;/td&gt;
&lt;td&gt;63.7&lt;/td&gt;
&lt;td&gt;75.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Avg Findings&lt;/td&gt;
&lt;td&gt;12.2&lt;/td&gt;
&lt;td&gt;9.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HIGH Severity&lt;/td&gt;
&lt;td&gt;2.1 per site&lt;/td&gt;
&lt;td&gt;0.7 per site&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;AI-built sites have 3x more high-severity vulnerabilities.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why? Because AI tools are really good at building features that work. They'll set up your auth, your API routes, your database queries. But they almost never add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security headers (CSP, HSTS)&lt;/li&gt;
&lt;li&gt;DNS hardening (DMARC, DNSSEC)&lt;/li&gt;
&lt;li&gt;Rate limiting&lt;/li&gt;
&lt;li&gt;CORS restrictions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nobody prompts "oh and add DMARC and CSP headers please." And the AI doesn't volunteer it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 things almost nobody has
&lt;/h2&gt;

&lt;p&gt;This is across ALL 447 sites, not just AI-built:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Missing Defense&lt;/th&gt;
&lt;th&gt;% Without It&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rate Limiting&lt;/td&gt;
&lt;td&gt;74%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content Security Policy&lt;/td&gt;
&lt;td&gt;72%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNSSEC&lt;/td&gt;
&lt;td&gt;72%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DMARC&lt;/td&gt;
&lt;td&gt;47%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privacy Policy&lt;/td&gt;
&lt;td&gt;68%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;74% have no rate limiting. That means bots can brute-force your login endpoint all day and your server won't even notice.&lt;/p&gt;

&lt;p&gt;72% have no CSP. One XSS vulnerability and any script runs freely on your pages.&lt;/p&gt;

&lt;p&gt;47% have no DMARC. Anyone can send emails pretending to be &lt;a href="mailto:you@yourdomain.com"&gt;you@yourdomain.com&lt;/a&gt;. Your users will get phishing emails that look like they came from you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How different platforms score
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Avg Score&lt;/th&gt;
&lt;th&gt;Avg Findings&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;75.9&lt;/td&gt;
&lt;td&gt;7.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WordPress&lt;/td&gt;
&lt;td&gt;76.5&lt;/td&gt;
&lt;td&gt;9.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;td&gt;75.1&lt;/td&gt;
&lt;td&gt;7.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare&lt;/td&gt;
&lt;td&gt;72.2&lt;/td&gt;
&lt;td&gt;7.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Netlify&lt;/td&gt;
&lt;td&gt;64.2&lt;/td&gt;
&lt;td&gt;13.4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Vercel and Next.js do better than average but still miss critical stuff. Netlify sites scored the lowest among modern platforms - not sure why, might be the default headers config.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grade distribution
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Grade&lt;/th&gt;
&lt;th&gt;% of Sites&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A+&lt;/td&gt;
&lt;td&gt;8.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;7.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;30.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;37.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;13.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;2.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The most common grade is C. Not failing, but not anywhere close to secure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can fix in 30 minutes
&lt;/h2&gt;

&lt;p&gt;The gap between a C and a B (or even an A) is usually not a rewrite. It's a few configs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Add CSP headers&lt;/strong&gt;&lt;br&gt;
Even a basic Content Security Policy blocks most XSS vectors. If you're on Next.js, it's a few lines in your middleware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Set up DMARC&lt;/strong&gt;&lt;br&gt;
Add a DNS TXT record for _dmarc.yourdomain.com. It tells email servers to reject spoofed emails from your domain. Takes 5 minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Add rate limiting on auth routes&lt;/strong&gt;&lt;br&gt;
Even a simple IP-based limit (like 10 attempts per minute) stops brute force attacks. Most frameworks have middleware for this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Enable DNSSEC&lt;/strong&gt;&lt;br&gt;
This is usually a one-click toggle at your DNS provider (Cloudflare, Namecheap, etc).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Check your CORS policy&lt;/strong&gt;&lt;br&gt;
If you're using &lt;code&gt;Access-Control-Allow-Origin: *&lt;/code&gt; in production, you're letting any website make requests to your API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check your own site
&lt;/h2&gt;

&lt;p&gt;I built UNPWNED because I was shipping fast with AI tools and had no idea what was exposed. The scanner checks thousands of things across dozens of scanners, only looks at publicly visible information (same stuff anyone visiting your site can see), and it's free to try.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unpwned.io" rel="noopener noreferrer"&gt;unpwned.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No account needed for a quick scan. Happy to answer questions about the methodology or findings in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>We Scanned 400+ Websites. Here's What We Found.</title>
      <dc:creator>Raz Azulay</dc:creator>
      <pubDate>Wed, 01 Apr 2026 10:56:56 +0000</pubDate>
      <link>https://forem.com/razazu/we-scanned-400-websites-heres-what-we-found-4n26</link>
      <guid>https://forem.com/razazu/we-scanned-400-websites-heres-what-we-found-4n26</guid>
      <description>&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nhA2FvqTZgo"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;We built &lt;a href="https://www.unpwned.io" rel="noopener noreferrer"&gt;UNPWNED&lt;/a&gt;, a security scanner for web apps. Over the past few weeks, we scanned 400+ websites across startups, SaaS products, and side projects.&lt;/p&gt;

&lt;p&gt;Here's what the data told us.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;412 scans&lt;/strong&gt; across &lt;strong&gt;167 unique domains&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Average first-scan score: &lt;strong&gt;65 out of 100&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Only &lt;strong&gt;2% scored an A&lt;/strong&gt; on their first scan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;58% scored a C&lt;/strong&gt;, &lt;strong&gt;23% scored D or F&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Most Common Issues
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;% of Sites Affected&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DNSSEC not enabled&lt;/td&gt;
&lt;td&gt;75%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No rate limiting on API endpoints&lt;/td&gt;
&lt;td&gt;70%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing Content Security Policy&lt;/td&gt;
&lt;td&gt;69%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weak CSP configuration&lt;/td&gt;
&lt;td&gt;57%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No cookie consent mechanism&lt;/td&gt;
&lt;td&gt;48%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing DMARC record (email spoofing risk)&lt;/td&gt;
&lt;td&gt;47%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No privacy policy page detected&lt;/td&gt;
&lt;td&gt;40%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing DKIM record&lt;/td&gt;
&lt;td&gt;37%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing HSTS header&lt;/td&gt;
&lt;td&gt;34%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Permissive CORS policy&lt;/td&gt;
&lt;td&gt;29%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What Surprised Us
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Almost half of all sites can be email-spoofed.&lt;/strong&gt; 47% were missing DMARC records, which means anyone can send emails pretending to be from their domain. Your users could get a phishing email "from" you today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;70% had no API rate limiting.&lt;/strong&gt; That means a single script could hammer their endpoints with zero resistance. No throttling, no blocking, nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;69% had no Content Security Policy.&lt;/strong&gt; CSP is one line of configuration that prevents XSS attacks. Most developers skip it because they don't know about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Good News
&lt;/h2&gt;

&lt;p&gt;Sites that used our fix suggestions and rescanned &lt;strong&gt;improved by an average of +8 points&lt;/strong&gt;. Some jumped from D to A in a single afternoon.&lt;/p&gt;

&lt;p&gt;The gap between "vulnerable" and "secure" is usually not a rewrite. It's a few headers, a DNS record, and some basic configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Can Do Right Now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Add a CSP header&lt;/strong&gt; - even a basic one blocks most XSS vectors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up DMARC, SPF, and DKIM&lt;/strong&gt; - protect your users from email spoofing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add rate limiting&lt;/strong&gt; - even a simple middleware prevents abuse&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable HSTS&lt;/strong&gt; - one header that forces HTTPS everywhere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check your CORS policy&lt;/strong&gt; - don't use &lt;code&gt;*&lt;/code&gt; in production&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;We built a free instant security checker - no signup required:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.unpwned.io/check" rel="noopener noreferrer"&gt;Check your website security score&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It runs 30+ checks and gives you a score, grade, and list of findings. If you want detailed fix instructions, you can sign up for free (5 scans/month).&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built solo by an indie hacker. UNPWNED was featured by top dev communities and presented to engineering teams at leading tech companies. If you have questions about any of these findings, drop a comment - happy to help.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
