Skip to main content

Activity for pimterry.fyi

Active on:

Loading activity...

I'm speaking at @journalismarena.eu's Dataharvest conf in Belgium this weekend! I'll be teaching investigative journalists how to intercept, interpret & scrape mobile app network traffic, it's going to be a lot of fun ๐Ÿ˜€ Anybody else I know here attending? Would be great to meet up #dataharvest26

Dataharvest 2026 - the European Investigative Journalism Conference: Unlocking the apps: How can you scrape d...
Bluesky network29d ago
Link unavailable

Staged publishing for npm! Finally ๐Ÿ™ I'm only just starting to test it now, but in theory at least this + trusted publishing could very significantly tighten up the security posture for lots of packages. Would be fantastic to see the current wave of attacks slow down a bit.

Staged publishing for npm packages | npm Docs
Bluesky network1mo ago
Link unavailable

I've been thinking about simonomi.dev/blog/color-c.... Whipped up a quick prototype for HTTP Toolkit's hex view - what do you think? Interesting and more useful than monochrome, or just visually noisy? See if you can guess what each file type is here - answers in the alt text ๐Ÿ˜€

A hex view with bytes coloured by value - in this case a favicon (lots of 00 at the start, then repeating patterns later).
Bluesky network1mo ago
Link unavailable

Just created my first Azure account to migrate HTTP Toolkit from certs to Microsoft's new 'Artifact Signing' setup (azure.microsoft.com/en-us/produc...). The UI is eye opening... Flashback 10 years in UI, impossible navigation, endless "Please update from X"/"Did you know Y is now Z" banners, wow ๐Ÿ˜ฌ

Bluesky network1mo ago
Link unavailable

HTTP Toolkit is now on the @fsfe.org major donor list! fsfe.org/donate/thank... They're doing great work right now like fsfe.org/news/2026/ne... - if you're also keen on open platforms & interoperability do please donate to support them too โค๏ธ

Apple keeps challenging its interoperability obligations under the DMA - FSFE
Bluesky network2mo ago
Link unavailable

Damn I got this as well! Just assumed it was spam and ignored this (and the LinkedIn follow up) turns out I dodged a bullet ๐Ÿ˜…

OpenFort slack invite
@socket.dev avatarSocket@socket.dev

๐Ÿšจ New Investigation: Attackers are hunting the maintainers behind Lodash, Fastify, buffer, Pino, mocha, Express, and #Nodejs core, because compromising one of them means write access to packages downloaded billions of times a week. socket.dev/blog/attacke...

Bluesky network2mo ago
Link unavailable

Finally bit the bullet and bought more RAM! The rumours are true, the prices really are excruciating, more than 4x the price I paid for the other stick 18 months back ๐Ÿฅฒ

Bluesky network2mo ago
Link unavailable

In case you want to understand your TLS clients in depth from Node.js, there's a new v2 release of read-tls-client-hello now live: github.com/httptoolkit/... Also now supported on testserver.host at testserver.host/tls/client-h..., so you can test & debug clients themselves directly.

Bluesky network3mo ago
Link unavailable

I've been playing around with agent-powered HTTP debugging -there's a lot of potential here... Even just with minimal data, Claude gets a really good understanding of flows very quickly, amazing for exploring. A quick summary of overall traffic & state flow across ~160 requests & responses:

Claude output:

Summary of the state flow

  Edge launches (no state)
      โ”‚
      โ”œโ”€โ†’ Bing qbox (cookieless) โ”€โ”€โ†’ Bing sets MUID + 9 others
      โ”‚
      โ”œโ”€โ†’ SmartScreen (token in Authorization header, no cookies)
      โ”‚
      โ””โ”€โ†’ GET reddit.com
           โ”‚ 301 โ†’ www.reddit.com (no cookies set on redirect)
           โ”‚
           โ””โ”€โ†’ GET www.reddit.com
                โ”‚ Sets: loid, session_tracker, csrf_token, token_v2, csv, edgebucket
                โ”‚
                โ”œโ”€โ†’ POST /svc/shreddit/events  โ† sends all 6 cookies back
                โ”‚   โ””โ”€ response refreshes session_tracker
                โ”‚
                โ”œโ”€โ†’ POST /svc/shreddit/graphql  โ† sends all 6 cookies (with updated session_tracker)
                โ”‚   โ””โ”€ response refreshes session_tracker again
                โ”‚
                โ”œโ”€โ†’ GET /svc/shreddit/feeds/popular-feed  โ† sends all 6 cookies
                โ”‚   โ””โ”€ response refreshes session_tracker again
                โ”‚
                โ”œโ”€โ†’ POST alb.reddit.com/track  โ† NO cookies (cross-subdomain, no-cors)
                โ”‚
                โ””โ”€โ†’ GET www.redditstatic.com/*  โ† NO cookies (CDN, different domain)

  The key insight is that Reddit bootstraps the entire anonymous session in a single response โ€” one page load sets up identity (loid), session tracking, CSRF protection, an auth JWT, A/B bucketing, and a
  cookie format version โ€” and then every subsequent same-origin request carries all of that state forward, with session_tracker being the only one that gets continuously rotated.
Bluesky network3mo ago
Link unavailable

Do I know anybody at GitHub who can help me get HTTP Toolkit into the student pack? I'm happy to do free accounts for students, I've filled out the form a couple of times - they never reply, but students keep endlessly emailing me to ask me if it's included.

Bluesky network3mo ago
Link unavailable

Continuing the epic battle to fix TLS fingerprinting in Node (bsky.app/profile/pimt...), I opened two more PRs this week enabling cert compression in Node (github.com/nodejs/node/...) and direct native access to OpenSSL for addons (github.com/nodejs/node/...). With that, it's basically there!

Enable compression in OpenSSL and add opt-in certificate compression support for TLS connections by pimterry ยท Pull Request #62217 ยท nodejs/node
@pimterry.fyi avatarTim Perry@pimterry.fyi

Made my 2nd PR to OpenSSL: github.com/openssl/open.... More than any other project, I feel very cautious about OpenSSL contributions - code & setup is complicated & fiddly, I'm not familiar with their patterns, and boy oh boy is it high-profile if you break it. Hopefully this is an easy one though!

Bluesky network3mo ago
Link unavailable

Wow, I sure am glad we have such diversity in the CSS world and that AIs consider all of the options fairly, instead of hypothetically being hyper focused on any specific library.

Which UI styling approach do you prefer?

  1. Tailwind + shadcn/ui (Recommended)
     Tailwind for utility CSS + shadcn/ui (Radix-based) for accessible, customizable components. Best native feel
     with full control.
  2. Tailwind + Radix UI
     Tailwind for styling + raw Radix primitives. More manual work but maximum flexibility.
  3. Ionic + Tailwind
     Ionic provides native-quality components and transitions out of the box. Heavier but purpose-built for
     Capacitor apps.
Bluesky network3mo ago
Link unavailable

Magic link login is fine, session expiry is fine, but for the love of god please don't do both. If you have to re-auth every week, there is little more frustrating that blocking the process waiting for an email so I can click a button, over and over and over...

Bluesky network3mo ago
Link unavailable

This looks very exciting: endowment.dev

Open Source Endowment โ€” World's First Endowment Fund for OSS
Bluesky network4mo ago
Link unavailable

Everybody's favourite "save me from myself" git hook (github.com/pimterry/git...) has the first new major feature in nearly 5 years: it'll now validate and catch unintended git pushes too ๐Ÿ˜€

Bluesky network4mo ago
Link unavailable

My AI code generation has decided it can generate an inline private key pair by itself, and I think we might be in trouble...

Node.js code that loads TLS & crypto, starts defining a KEY variable with BEGIN PRIVATE KEY, and then loops on the same 'random' string forever...
Bluesky network6mo ago
Link unavailable

Being hit by my first DDOS attack right now, it's all quite exciting!!!

Bluesky network6mo ago
Link unavailable

Just in case Shia-Hulud is making you paranoid as well, did you know you can link SSH keys to a Yubikey? ssh-keygen -t ed25519-sk -O resident -C "you@example.com" Requires a tap to confirm any git push. Even if malware steals your ssh key files, they're useless without the physical key.

Bluesky network7mo ago
Link unavailable

These AWS & Cloudflare mega-outages are honestly embarrassing as an industry. Eugh. What are we doing??? We have so many tools & processes for ensuring reliability, but somehow two vendors can each single-handledly wipe everything out anytime.

Bluesky network7mo ago
Link unavailable

The latest npm attacks & changes have pushed me to set up Trusted Publishing via GitHub Actions, and honestly it's actually fantastic. Didn't realise how much hassle & friction manual publishing was. npm version + push --tags is incredibly convenient (and safer + more verifiable for everyone!)

Bluesky network7mo ago
Link unavailable