惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
宝玉的分享
宝玉的分享
Jina AI
Jina AI
IT之家
IT之家
博客园 - Franky
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
雷峰网
雷峰网
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
美团技术团队
S
SegmentFault 最新的问题
罗磊的独立博客
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
D
Docker
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I built a security scanner, never shipped it, and finally...
SecURL · 2026-05-24 · via DEV Community

I built SecURL about six months ago during a stretch of evenings where I kept hitting the same frustration: running a security scan on a site and getting back either a wall of jargon or a narrow result that only checked one thing. securityheaders.com checks headers. SSL Labs checks TLS. Mozilla Observatory covers a bit more. But nothing gave you the full picture in one pass, ranked by what to actually fix first.

So I built it. SecURL scans a URL and checks HTTP security headers, TLS configuration, DMARC, SPF, DKIM, DNSSEC, third-party script exposure, cookie flags, redirect chains, and more. It gives you an A to F grade and ranks every finding by severity with OWASP references attached. Paste a URL, get a report in about 30 seconds.

The scanner itself worked well. The engine was solid. But the project sat in a state I think a lot of side projects end up in: technically functional, never actually shipped. No marketing presence, no billing system, UX issues I knew about but kept deferring, documentation that existed only in my head.

That is the before.


The finish-up started with the UX problems I had been ignoring. There was a white gap appearing at the bottom of the page on certain viewport sizes. The navigation tab bar was getting truncated because a share button was stealing horizontal space in the same flex row. The recent scans list showed every grade in the same teal colour regardless of whether the site got an A or an F. The version badge in the hero was showing the full internal build string — core version, build hash, app version — fine for me, noise for everyone else.

Copilot helped me move quickly through these fixes. The kind of changes where you know exactly what needs to happen but the back-and-forth of finding the right element, checking what the parent is doing, adjusting the layout — having inline suggestions while you work through it means you stay in flow instead of breaking to look things up. The white gap was a single CSS property once I found the right place. The tab truncation was moving the share button out of the flex row into its own div above the nav. Small things individually, but the app looks significantly more polished now.

The marketing site (securl.online) also needed work. The comparison table footer copy said "active checks" which contradicted the rest of the site explaining that SecURL only makes passive observations — public-response checks, nothing invasive. One line that would have undermined trust with anyone who read carefully.


The after is that SecURL is now actually launched rather than just running.

The UX issues are fixed and shipped. There is a Twitter account (@thisissecurl) with posts going out. A Dev.to presence. A Product Hunt profile. A proper UX review checklist so future deploys go through a structured check before anything ships.

The scanner itself does things most free tools do not. It checks email trust records properly — not just whether DMARC exists but whether the policy is set to quarantine or reject, whether SPF has overly permissive qualifiers, whether DKIM selectors are discoverable. It detects session replay tools and analytics vendors from the third-party script surface. It maps the redirect chain and flags security issues at each hop. The grade system collapses all of that into something a non-security person can act on.

If you want to try it: app.securl.online. Free, no account needed, takes about 30 seconds. Particularly interested to hear from anyone who scans something and gets a result they think is wrong — the engine is still being tuned and real-world feedback is genuinely useful.