There are ~90 prior comments concentrated mostly in two prior submissions from 2016 and 2021 so far: https://news.ycombinator.com/from?site=publicsuffix.org
This is the top comment on the 2021 discussion:
> Before you begin to make use of the PSL, consider some of its problems: https://github.com/sleevi/psl-problems
There are another couple dozen comments on a few submissions of that: https://news.ycombinator.com/from?site=github.com/sleevi
HN frequently suggests that DNS should be used to solve this; sleevi replied a few years back with:
> This has been a common suggestion since before the Publix Suffix List existed, as you can see from the linked issues in the text (and the references to the IETF DBOUND WG). Like most things, on first glance, it seems like it does make sense. Except it has a lot of issues, which you can see have been discussed for 15 years without resolution, even though yes, it would scale better.
This is just one cautionary tale I have personally experienced.
For instance, https://data.iana.org/TLD/tlds-alpha-by-domain.txt
Where is .co.uk ? That is - for all intents and purposes - considered a TLD.
So PSL is currently doing double-duty and the distinction is very important.
I was looking at this in terms of trying to keep an app up-to-date, and there was a lot more churn than I expected. If you have a security reason to be reading this, you may need to put some effort into maintaining this... at least, technically. I doubt there's hardly an app out there "properly" keeping up with this and the world seems to largely hold together even so.
edit: After reading https://github.com/sleevi/psl-problems maybe the standards organizations just don't think it's a good idea
TXT v=ps1 ;trust boundary at this point
TXT v=ps2 exception1.my.network. ; trust boundary with exceptions at this point
And then let the big operators argue for a few years on why this in insufficient and we need a complicated dsl (cough spf cough) v=ps3. and what to do when both ps1 and ps2 entries exist. (confused operator, ignore exceptions)
Edit: I still think that domains hosted with major dyndns services (like freedns.afraid.org) should be treated like PSLs.
https://github.com/publicsuffix/list/issues/271#issuecomment...
I came across the PSL when a state government department contacted my consultancy and asked what the impact would be of uncommenting a line in the PSL. They were focused on the effect this would have on DMARC and SPF records of child agencies under the parent TLD, but I realised that it also meant that cookies that could previously be shared across agency boundaries would suddenly be siloed at a different level, potentially breaking web apps. (Think authentication portals using shared cookies across a bunch of things.)
But how to test this!?
I discovered that the PSL is embedded in browser executables when they’re compiled. So I came up with the approach of making two Chromium builds, one with the PSL change and one without the change. Since it has a nice blue icon I changed the modified build to have a red icon. I called these the “red pill” and “blue pill” versions.
The idea was that web devs could test their sites with the two nearly identical browsers side-by-side and so any observed difference is a sign of a potential issue. I also used Playwright to scan over ten thousand public URLs with both a compared the traces programmatically.
Another trick I used was to spin up spot priced “HPC” instances in Azure with 120 AMD EPYC cores to run the builds.
One of the most fun projects I’ve ever worked on.
No, they never changed the PSL, it’s still incorrect.
I only found one site that has an issue, but that made them too nervous and they gave up…
- com, example.com, foo.example.com are all domains
- com is a TLD
- subdomain is a relative term, not an absolute one:
. example.com is a subdomain of com
. foo.example.com is a subdomain of example.com
. bar.foo.example.com is a subdomain of foo.example.com
If somebody asked me what domain you’re using and you said “com”, you would technically have answered accurately but they’d be confused.