---------------------------------------- | |
Which gopher daemons have been patched to fix the hURL issue? | |
February 27th, 2024 | |
---------------------------------------- | |
So if you've been following my phlog, you'll see that I discovered that | |
most gopher daemons implementing the hURL hack have done so in a rather | |
haphazard manner, both failing to produce proper URLs (certain reserved | |
characters MUST be percent encoded) and to produce proper HTML (reserved | |
characters MUST be HTML entities less they are interpreted as HTML). | |
Here's where we stand right now with various servers: | |
bucktooth - fixed, breaking change | |
geomyidae - fixed, breaking change | |
gophernicus - broken | |
pygopherd (python3) - fixed | |
motsognir - NOT fixed (yet?). | |
Now you'll notice that I have labeled bucktooth and geomyidae's fix as | |
a "breaking change", this is because with these gopher servers, if you | |
are using one of the reserved characters in a URL in gophermap, that URL | |
will no longer generate a hURL page after the update: until you update | |
the gophermap to have the characters percent encoded. As for gophernicus | |
and pygopherd they will do the percent encoding for you; meaning the fix | |
is absolutely painless for users of those daemons. | |
BTW, now is a good time to mention (as geomyidae now does!): The hURL | |
hack is stupid. Very stupid. Please stop using it; we've had a gopher- | |
native URL scheme that is much better since 1992. It is type w. As-of | |
NOW gopher.zcrayfish.soy will return type w if you're connecting via | |
IPv6. If you're connecting via IPv4, I'll still send the hURL hack for | |
now, but seriously, as clients are updated to support IPv6, they need to | |
have type w patched in as well. | |
And as for gopher servers generating HTML pages, consider generating | |
XHTML pages with an XML declaration, clients that are served these pages | |
and support XML will stop parsing and print an error in the event that | |
someone manages to pull off an attack of this type... | |
Edit 28 Feb: Just don't use gophernicus. The patch is broken. | |
Edit 15 March 2025: gophernicus may have been fixed... Not checking. | |
---------------------------------------- | |
Back to phlog index | |
gopher.zcrayfish.soy gopher root | |
The wheel has been reinvented 973 times. | |
Comments are enabled for this post, select here to leave yours | |
Comments have been left on this post: | |
I'm genuinely curious: does any gopher client exist that a) can render | |
HTML but b) does NOT support URL: selectors? That seems like a strange | |
combination of features to me. I've used only a small handful of gopher | |
clients so far (Lynx, Bombadillo, Overbite for Android, GOPHRite), and | |
they all support URL: selectors just fine WITHOUT a server-generated | |
HTML redirect page. And if no such client actually exists, is it now | |
safe to omit URL: support in Gopher servers? -cw | |
Posted Thu Feb 27 19:09:44 UTC 2025 by 174-17-246-5.phnx.qwest.net. | |
------------------------------------------------------------------------ | |
Seems w3m supports HTML but not URL: selectors. It's not a very good | |
Gopher client, so not much is lost without URL: server support. -cw | |
Posted Thu Feb 27 20:53:01 UTC 2025 by 174-17-246-5.phnx.qwest.net. | |
------------------------------------------------------------------------ | |
Any gopher client that inherited its gopher support from libwww and pre- | |
dates the hURL hack, or just didn't bother to implement it, will render | |
HTML and don't support the URL: selector. Hopefully these are becoming | |
rare these days. It's definitely safer for everyone if the server- | |
generated HTML redirect pages are simply ditched entirely. | |
Posted Mar 15 23:57:44 UTC 2025 by zachary | |
------------------------------------------------------------------------ | |
Gophernicus is still broken but possibly in a different way. It has a | |
function called `html_encode` which doesn't actually HTML encode; | |
instead it percent-encodes some characters. One character that it | |
leaves intact is the ampersand. Fail. I'm working on a patch now to | |
make it actually HTML encode text. -cw | |
Posted Fri May 30 19:36:31 UTC 2025 by | |
wsip-98-163-190-162.ph.ph.cox.net. | |
------------------------------------------------------------------------ |