text/plain
ericlaw talks about security, the web, and software in general
- Posts
- 433 from 28 Sep 2012 to 24 Sep 2026
- Posting
- weekly (25 in the last year)
- Kind
- personal blog
- Feed
- https://textslashplain.com/feed/
2026 23
- “The” IP Address
- Experimentation: Just Try It!
- Simple Browser Security Improvements
- The Windows Security App
- Attack Technique: AI Clones
- Fiddler in 2026
- Web Security is Too Hard
- Authenticode and UAC
- Attack Techniques: Fake Captive Portals
- Offboarding from Microsoft Defender for Endpoint
- Guidelines for URL Storage and Comparison
- Driving (Large) Electric
- A Quarter Century in Tech
- Participatory Extensible Security
- Spring 10Ks
- Cybersecurity Metaphors
- Exploiting Vulnerable Drivers
- Smart App Control
- Attack Techniques: RMM Abuse
- Understanding Defender AV Scans
- Windows: Choose Where To Get Apps
- Winter 2026 Runs
- Security Software False Positives
2025 25
- Security Surfaces
- Defensive Technology: Ransomware Data Recovery
- Windows Shell Previews – Restricted
- An Improbable Recovery
- AI Injection Attacks
- 2025 Summer Vacation
- Security Product Efficacy
- Family Safety Content Filtering
- First Look: Apple’s NEURLFilter API
- Web Category Filtering
- Fiddler in 2025
- Attack Techniques: Fake Literally Everything! (Escrow Scam)
- Vibe-coding for security
- Understanding SmartScreen and Network Protection
- A Solid 10K
- Defensive Technology: Exploit Protection
- Defensive Technology: Windows Filtering Platform
- Runtime Signature Checking Threat Model
- Spring Break
- Debugging Chromium
- Authenticode in 2025 – Azure Trusted Signing
- Guidelines for Secure Filename Display
- Attack Techniques: “I Already Hacked You” Scams
- Winter 2025 Races
- Welcome to 2025!
2024 38
- On Mortality
- Mark-of-the-Web: Real-World Protection
- My New Desktop
- Fiddler – My Mistakes
- Parallel Downloading
- Security Software – An Overview
- Best Practices for SmartScreen AppRep
- Defensive Technology: Controlled Folder Access
- On Politics
- Lenovo P1, Gen7: Meh
- Defensive Technology: Antimalware Scan Interface (AMSI)
- Content-Blocking in Manifest v3
- Attack Techniques: Encrypted Archives
- Welcome to Fall, I guess?
- Browser Features: Find in Page
- Memento Mori – Farewells
- Attack Techniques: Invoice Scams
- Attack Techniques: Trojaned Clipboard
- Authenticode in 2024
- Attack Techniques: Remote Control Software
- Attack Techniques: Full-Trust Script Downloads
- Spring 2024 Updates
- ERR_BLOCKED_BY_CLIENT and HTML5 Sandbox
- Mouse Gestures in Edge
- Going Electric – Solar 1 Year Later
- Browser Security Bugs that Aren’t: JavaScript in PDF
- A Slow 10K
- Attacker Techniques: Gesture Jacking
- pushState and URL Blocking
- Browser Extensions: Powerful and Potentially Dangerous
- Second Seaside Half
- The Importance of Feedback Loops
- Cloaking, Detonation, and Client-side Phishing Detection
- x22i Treadmill Review
- How Downloads Work
- A Cold and Slow 3M Half
- The Blind Doorkeeper Problem, or, Why Enclaves are Tricky
- Coding at Google
2023 66
- Fall 2023 Races
- Defense Techniques: Blocking Protocol Handlers
- Attack Techniques: Steganography
- Troubleshooting Edge (or Chrome) Broken UI
- Troubleshooting Edge (or Chrome) Browser Crashes
- Driving Electric – One Year In
- Protecting Auth Tokens
- ServiceWorkers vs. Network Filtering
- Security: The Impact of Time
- Beware: URLs are Pointers to Mutable Entities
- Email Etiquette: Avoid BCC’ing large distribution lists
- Fiddler Web Debugger Turns 20
- Security Tradeoffs: Privacy
- Security: Tradeoffs
- Web Platform Weirdness: Babies and Bathwater
- Web Weirdness: Probing Localhost
- Attack Techniques: Fullscreen Abuse
- The Challenge of IP Reputation
- Defensive Techniques: Application Guard
- Kilimanjaro – To Exit Gate & Home
- Kilimanjaro – Descent to Mweka
- Kilimanjaro – To Summit
- Kilimanjaro – To Kosovo/Respicius Camp
- Kilimanjaro – Up Barranco Wall to Karanga Camp
- Kilimanjaro – To Lava Tower and Barranco Camp
- Kilimanjaro – To Shira 2 Camp
- Kilimanjaro – To Shira 1 Camp
- Kilimanjaro – Trailhead to Forest Camp
- Kilimanjaro – Meet the Team; To Ndarakwai Lodge
- Kilimanjaro – Mini Safari
- SmartScreen Application Reputation, with Pictures
- Divorce – 18 Months In
- Kilimanjaro – Coffee Tour
- Attack Techniques: QR Codes
- Enforcing SmartScreen with Policy
- Attack Techniques: SMS Gift Card Scams
- Kilimanjaro – Getting There
- Kilimanjaro 2023 – Journal
- Kilimanjaro – Gear
- Kilimanjaro – Overview
- Browser SSO / Automatic Signin
- Improving the Microsoft Defender Browser Protection Extension
- How do Random Credentials Mysteriously Appear?
- Detecting When the User is Offline
- New TLDs: Not Bad, Actually
- A Beautiful 10K
- (The Futility of) Keeping Secrets from Yourself
- Auth Flows in a Partitioned World
- Explainer: File Types
- How Microsoft Edge Updates
- Attack Techniques: Spoofing via UserInfo
- Going Electric – Solar
- Improving Native Message Host Reliability on Windows
- Attack Techniques: Open Redirectors, CAPTCHAs, Site Proxies, and IPFS, oh my
- Slow Seaside Half
- Q: “Remember this Device, Doesn’t?!?”
- Attack Techniques: Blended Attacks via Telephone
- A New Era: PM -> SWE
- A Year of Intention
- Couch to Half Marathon: Closing My First Year of Running
- Defense Techniques: Reporting Phish
- SlickRun
- 2022 EOY Fitness Summary
- Attack Techniques: Priming Attacks on Legitimate Sites
- Attack Techniques: Phishing via Mailto
- Attack Techniques: Phishing via Local Files
2022 49
- ProjectK.commit()
- Missed Half
- TLS Certificate Verification Changes in Edge
- Mark-of-the-Web: Additional Guidance
- Q4 2022 Races
- Driving Electric
- Thoughts on Twitter
- “Not Secure” Warning for IE Mode
- Microsoft Employee’s Guide to Maximizing Donations
- Q: Why do tabs sometimes show an orange dot?
- Capturing Logs for Debugging SmartScreen
- Cruising Alaska (Alaskan Brews Cruise)
- HTTPS Goofs: Forgetting the Bare Domain
- Best Practice: Post-Mortems
- Attack Techniques: Notification Spam
- Edge’s Super-Res Image Enhancement
- QuickFix: Trivial Chrome Extensions
- Passkeys – Syncable WebAuthN credentials
- Understanding Browser Channels
- Certificate Revocation in Microsoft Edge
- New Recipes for 3rd Party Cookies
- My Next Opportunity
- Edge URL Schemes
- End of Q2 Check-in
- Captive Portals
- Extending Fiddler’s ImageView
- “Batteries-Included” vs “Bloated”
- Chromium Startup
- Microsoft Edge Tips and Tricks
- Losing your cookies
- Thoughts on Impact
- Unexpectedly HTTPS?
- Chromium Internals: PAK Files
- Real-World Running
- End of Q1 Check-in
- Chromium’s DNS Cache
- The “Magical” Back Button
- Edge/Chrome Policy Registry Entries
- Smarter Defaults by Paying Attention
- Mid-February Checkin
- MHTML in Chromium
- Adding Protocol Schemes to Chromium
- Debugging Compatibility in Edge
- Recognizing Edge Windows
- Trim Your Whitespace
- Debug Native Messaging
- Lock down web browsing using Kiosk Mode
- getaddrinfo(2022)
- Edge Command Line Arguments
2021 18
- Cruising Solo
- Microsoft Edge’s Many Processes
- Great Bug Reports via “Recreate My Problem” in Microsoft Edge
- View-Source
- Spooky: Enhancing Dark Mode in Chromium
- MoarTLS: Non-Secure Download Blocking
- Accessibility (UIA) Troubleshooting
- Practical Time Machines
- Determining OS Platform Version
- Inspecting Certificates in Edge
- Leaky Abstractions
- Offline NetLog Viewing
- Download Blocking by File Type
- Per-Site Permissions in Edge
- Specifying Per-Site Policy with Chromium’s URL Filter Format
- Web Proxy Authentication
- window.close() Restrictions
- Sandboxing vs. Elevated Browsing (As Administrator)
2020 37
- Objectively, the best cat
- Simply Making Simple Fixes Simple for Chromium
- Client Certificates and Logout
- Web “Sessions” in Private Mode
- Images Keeping You Awake?
- Debugging Browsers – Tools and Techniques
- Local Data Encryption in Chromium
- Web Debugging: Watching Element Changes
- Browser Memory Limits
- Web-to-App Communication: The Native Messaging API
- Font Smoothing in Edge
- Managing Edge via Policy
- Seamless Single Sign-On
- Beating Private Mode Blockers with an Ephemeral Profile
- Revealing Passwords
- Web Proxy Auto Discovery (WPAD)
- Same Origin Policy & CORS
- Avoiding Unexpected Navigation
- Browser Basics: User Gestures
- A bit of GREASE keeps the web moving
- META CHARSET
- Client Certificate Authentication
- Analyzing Network Traffic Logs (NetLog json)
- Debugging Proxy Configuration Scripts in the new Edge
- Celebrating Fifteen Years
- Enigma Conference 2020 – Browser Privacy Panel
- “Can I… in the new Edge?” (Un-FAQ)
- Bypassing AppProtocol Prompts
- Browser Password Managers: Threat Models
- Demystifying Browsers
- App-to-Web Communication: Launching Web Apps
- Microsoft’s Three Browsers
- My New Chromium Build PC
- Security Zones in Edge (and Chrome)
- Retiring Internet Explorer
- Capture Network Logs (NetLog) from Edge and Chrome (and Electron and WebView2)
- Disabling TLS/1.0 and TLS/1.1 in the new Edge Browser
2019 25
- WebOCs and HTTP/2
- The Pitfalls of EventSource over HTTP/1.1
- AppOrWeb-to-WebApp Communication: Custom Scheme Handlers
- Thoughts on DNS-over-HTTPS
- bye: FTP Support Is Going Away
- Improving Privacy by Limiting Referrers
- Restrictions on File Urls
- Same-Site Cookies By Default
- Aw, snap! What if Every Tab Crashes?
- Web-to-App Communication: DirectInvoke
- Livin’ on the Edge: Root Causing Regressions
- Web-to-App Communication: App Protocols
- Browser Architecture: Web-to-App Communication Overview
- Spying on HTTPS
- Livin’ on the Edge: Dude Where’s My Fix?!? (Redux)
- Livin’ on the Edge: Dude Where’s My Fix?!?
- Great Product Support
- Updating Browsers Quickly: Flags, Respins, and Components
- Challenges with Federated Identity in modern browsers
- Surprise: Undead Session Cookies
- Edge79+ vs. Edge18 (Edge Legacy) vs. Chrome vs. Internet Explorer
- Protect Your Accounts with 2FA
- Delete Cookies for a Single Site
- Securely Displaying URLs
- Demystifying ClickOnce
2018 28
- Private Browsing Mode
- An Update on the Edge XSS Filter
- Streaming Audio in Edge
- ShellExecute Doesn’t
- Cookie Limits
- Cookie Controls, Revisited
- Firefox and Fiddler – Easier than Ever
- Chrome Sync
- Cookies and Concurrency, Redux
- ERROR_INSUFFICIENT_BUFFER and Concurrency
- Edge Interop Issues
- Script-Generated Download Files
- CORS and Vary
- Be skeptical of client-reported MIME Content-Types
- Edge EV UI Requires SmartScreen
- Back Home
- Stop Spilling the Beans
- Building your .APP website with NameCheap and GitHub Pages–A Visual Guide
- Fight Phish with Facebook (and Certificate Transparency)
- Going Offline with ServiceWorker
- Google Chrome–Two(ish) Years In
- I Still ❤ The Web
- SSLVersionMin Policy returns to Chrome 66
- HSTS Preload and Subdomains
- NET::ERR_CERT_INVALID error
- Understanding the Limitations of HTTPS
- FiddlerCore and Brotli compression
- Content-Types Matter More Than You Think
2017 22
- Taking Off Your NameTag
- What If?
- Strict-Transport-Security for *.dev, *.app and more
- For a Lark
- Google Internet Authority G3
- Chrome Field Trials
- Stealing your own password is not a vulnerability
- Speaking at DevReach 2017
- Working with “Big Data” in .NET
- Fiddler And LINQ
- Chrome 59 on Mac and TeletexString Fields
- Inspecting Certificates in Chrome
- Finding Image Bloat In Binary Files
- Get Help with HTTPS problems
- Chrome Deprecates Subject CN Matching
- The Trouble with Magic
- Working on Google Chrome – Year One
- Certified Malice
- The Line of Death
- Client Certificates on Android
- HTTPS Only Works If You Use It – Tipster Edition
- Security UI in Chrome
2016 35
- 2016 Brotli Update
- Do Not Lie to Users
- Useful Resources when Developing Chrome Extensions
- Email Tracking Links are the Worst
- Troubleshooting Windows 10 Bluescreens
- WordPress.com bug post
- File the Bug
- Using Fiddler With iOS 10 and Android 7
- Test post
- Cheating Authenticode, Redux
- TLS Fallbacks are Dead
- Non-Secure Clicktrackers–The Fastest Path from A+ to F
- File Paths in Windows
- Stupid HexEdit Tricks
- Bolstering HTTPS Security
- SHA256 and Authenticode REDUX^2
- Silliness – Fiddler Blocks Malware
- Compression Context
- Downloads and the Mark-of-the-Web
- Building the moarTLS Analyzer
- Seek and Destroy Non-Secure References Using the moarTLS Analyzer
- Using HTTPS Properly
- On Daylight Savings Time
- Out-of-Memory is (Usually) a Lie
- Things I’ve Learned in my first weeks on Chrome
- Web Developers and Footguns
- Leaking Keystrokes
- Extended Validation Certificates – The Introduction
- Life in Austin
- Authenticode and SHA1–Redux
- Automatically Evaluating Compressibility
- Putting Users First
- SHA-1 Certificates Blocked By Authenticode
- Authenticode in 2016
- Getting Started with Profile Guided Optimization
2015 65
- What’s New in Fiddler 4.6.2
- 2015 in review
- My Next Adventure
- Segue
- Certificates Matter
- Security Response Basics
- DLL Hijacking Just Won’t Die
- Book-Writing: Just Do It!
- Repairing Corrupt ZIP Files
- Hashes and Code-Signing
- Understanding CONNECT Tunnels
- The Sad State of HAR
- Reset Fiddler’s HTTPS certificates
- DotNet Makes Me Sad, In Pictures
- The Budget
- What’s New in Fiddler 4.6.0.7
- Viewing HTTPS Handshakes in Fiddler
- Fiddler and Brotli
- Duct Tape and Baling Wire–Cookie Prefixes
- WebP–What Isn’t Google Telling Us?
- Eloquence
- Help–The Whole Web Thinks I’m Using IE7!!!
- Ad Publishers–A TODO List
- Ad-Block: Current Status
- Developer Advocacy
- Brotli
- Fiddler Certificate Generators
- What’s New in Fiddler 4.6
- API Testing with Telerik Fiddler
- Attribution Error
- Tuning MemoryStream
- On Defaults
- Stupid (useful) Windows Shell Tricks
- An A+ HTTPS site for $20
- Organizational Awareness
- Microsoft Edge Bugs and Omissions
- Zopfli All The Things
- What I Use–Software Edition
- Google Search Provider in Microsoft Edge
- Ad Blocking – Site Reaction Gallery
- What I Read–Book Edition
- HTTPS Only Works If You Use It
- Testing HTTPS In Native APPs
- Photoshop and Save For Web
- Content Blocking: Unintended Consequences
- On Chromebooks
- Stock Holdings, Mid-2015
- Anecdotal Ephemera
- The Edge Team
- Optimize PNGs using PngDistill
- Meaningless Legalese
- Reactions to Collateral Damage
- Collateral Damage
- Medical Bills
- The Muse
- Unsecure Content
- HTTP Caching Public Service Announcement
- Browser Benchmarks
- Velocity Conference – 2015 Santa Clara
- Security UI
- OpenSearch
- Utf 8
- On Appreciation
- Authenticode and ClickOnce
- Howdy, y’all!