Your one-stop shop for all Changelog podcasts. Weekly shows about software development, developer culture, open source, building startups, artificial intelligence, shipping code to production, and the people involved. Yes, we focus on the people. Everything else is an implementation detail.
Web dev security school (JS Party #293)
This week, we’re joined by Ron Perris, a Security Engineer at Reddit and software security enthusiast. Together, we dive into best practices and common pitfalls, covering topics from dangerous URLs to JSON injection attacks. Tune in for an educational conversation, and don’t forget to bring your notebooks!
Changelog++ members get a bonus 4 minutes at the end of this episode and zero ads. Join today!
Sponsors:
- Convex – Convex is a better type of backend — the full-stack TypeScript development platform that lets you replace your database, server functions, and glue code. Get started at convex.dev
- Appwrite – Build Fast. Scale Big. All in One Place. Appwrite is a backend platform for developing Web, Mobile, and Flutter applications. Built with the open source community and optimized for developer experience in the coding languages you love.
- Changelog News – A podcast+newsletter combo that’s brief, entertaining & always on-point. Subscribe today.
Featuring:
- Ron Perris – Twitter, GitHub
- Amal Hussein – Twitter, GitHub
- Christopher Hiller – Twitter, GitHub, Website
Show Notes:
- 10 React Security Best Practices Cheatsheet (by Ron Perris & Liran Tal)
- ZAP - the worlds most widely used web app scanner
- Loco Moco Security Conference in Hawai’i
- Node.js Ecosystem Security Working Group
- Node.js Security Bug Reporting
- Node.js Hacker One Page
- Node.js Third Party Labs Hacker One Page (now disabled)
- Python’s Advocate Library - for making secure HTTP requests on behalf of a third party
- DOMPurify - DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG
- ESLint Security Plugin
- Content Security Policy
Something missing or broken? PRs welcome!
Timestamps:
(00:00) - It's party time, y'all
(00:39) - Sponsor: Convex
(04:10) - Welcoming Ron Perris
(04:46) - Ron's background
(14:55) - NodeJS Security Working Group
(23:47) - Sponsor: Appwrite
(26:35) - Where to get started with security
(34:17) - String injectiony stuff
(39:42) - XSS protection
(43:40) - URL-based script injection
(50:41) - Who's responsible for security?
(52:38) - Sponsor: Changelog News
(54:19) - On security teams
(58:00) - On project security
(59:51) - Sanitize & render HTML
(1:04:45) - Secure server-side rendering
(1:05:55) - Avoid JSON injection attacks
(1:08:50) - User linter configs
(1:10:54) - Thomas Eckert's question
(1:13:57) - Why aren't people taught this?
(1:16:10) - The Loco Moco conference
(1:17:14) - Frontend vs backend security
(1:24:14) - Connecting with Ron
(1:25:45) - Next up on the pod (Join ++!)