Skip to content

Commit

Permalink
Remove support for Gopher protocol (#1092)
Browse files Browse the repository at this point in the history
Gopher code quality remains too low for production use in most
environments. The code is a persistent source of vulnerabilities and
fixing it requires significant effort. We should not be spending scarce
Project resources on improving that code, especially given the lack of
strong demand for Gopher support.

With this change, Gopher requests will be handled like any other request
with an unknown (to Squid) protocol. For example, HTTP requests with
Gopher URI scheme result in ERR_UNSUP_REQ.

Default Squid configuration still considers TCP port 70 "safe". The
corresponding Safe_ports ACL rule has not been removed for consistency
sake: We consider WAIS port safe even though Squid refuses to forward
WAIS requests:

    acl Safe_ports port 70          # gopher
    acl Safe_ports port 210         # wais
  • Loading branch information
rousskov authored and squid-anubis committed Jul 27, 2022
1 parent ccea545 commit 6ea12e8
Show file tree
Hide file tree
Showing 69 changed files with 88 additions and 1,251 deletions.
5 changes: 0 additions & 5 deletions doc/Programming-Guide/Groups.dox
Expand Up @@ -31,11 +31,6 @@
* caches.
* All requests to other proxies are sent as HTTP requests.
* All requests to origin-server are sent in that servers protocol.
*
\par
* Wais and Gopher don't receive much
* attention because they comprise a relatively insignificant
* portion of Internet traffic.
*/

/**
Expand Down
1 change: 0 additions & 1 deletion doc/debug-sections.txt
Expand Up @@ -27,7 +27,6 @@ section 06 Disk I/O Routines
section 07 Multicast
section 08 Swap File Bitmap
section 09 File Transfer Protocol (FTP)
section 10 Gopher
section 11 Hypertext Transfer Protocol (HTTP)
section 12 Internet Cache Protocol (ICP)
section 13 High Level Memory Pool Management
Expand Down
2 changes: 1 addition & 1 deletion doc/manuals/de.po
Expand Up @@ -3868,7 +3868,7 @@ msgid ""
"blocking process."
msgstr ""
"B<squid> ist ein leistungsfähiger Proxy caching Server für Web Clients, "
"welcher FTP, gopher, ICAP, ICP, HTCP and HTTP Data Objects unterstützt. Im "
"welcher FTP, ICAP, ICP, HTCP and HTTP Data Objects unterstützt. Im "
"Unterschied zu traditioneller caching Software verarbeitet B<squid> alle "
"Anfragen in einem einzigen non-blocking Prozess."

Expand Down
2 changes: 1 addition & 1 deletion doc/manuals/en.po
Expand Up @@ -4262,7 +4262,7 @@ msgid ""
"blocking process."
msgstr ""
"B<squid> is a high-performance proxy caching server for web clients, "
"supporting FTP, gopher, ICAP, ICP, HTCP and HTTP data objects. Unlike "
"supporting FTP, ICAP, ICP, HTCP and HTTP data objects. Unlike "
"traditional caching software, Squid handles all requests in a single, non-"
"blocking process."

Expand Down
2 changes: 1 addition & 1 deletion doc/manuals/en_AU.po
Expand Up @@ -4060,7 +4060,7 @@ msgid ""
"blocking process."
msgstr ""
"B<squid> is a high-performance proxy caching server for web clients, "
"supporting FTP, gopher, ICAP, ICP, HTCP and HTTP data objects. Unlike "
"supporting FTP, ICAP, ICP, HTCP and HTTP data objects. Unlike "
"traditional caching software, Squid handles all requests in a single, non-"
"blocking process."

Expand Down
2 changes: 1 addition & 1 deletion doc/manuals/es.po
Expand Up @@ -2562,7 +2562,7 @@ msgid ""
"blocking process."
msgstr ""
"B<squid> es servidor proxy-caché de alto rendimiento para clientes web que "
"soporta FTP, gopher, ICAP, ICP, HTCP y objetos de datos HTTP. A diferencia "
"soporta FTP, ICAP, ICP, HTCP y objetos de datos HTTP. A diferencia "
"del software de caché tradicional, Squid maneja todas las solicitudes en un "
"único proceso asíncrono"

Expand Down
2 changes: 1 addition & 1 deletion doc/manuals/fr.po
Expand Up @@ -1495,7 +1495,7 @@ msgid ""
"non-blocking process."
msgstr ""
"B<squid> est un serveur proxy de haute performance cachant les clients sur "
"le web, il supporte les protocoles FTP, Gopher, ICAP, ICP, HTCP et HTTP pour "
"le web, il supporte les protocoles FTP, ICAP, ICP, HTCP et HTTP pour "
"le transfert des données. Contrairement aux logiciels de mise en cache "
"traditionnelle, Squid gère toutes les requêtes en un seul processus non-"
"bloquant."
Expand Down
2 changes: 1 addition & 1 deletion doc/manuals/it.po
Expand Up @@ -1485,7 +1485,7 @@ msgid ""
"non-blocking process."
msgstr ""
"B<squid> è un server proxy con cache ad alte prestazioni per client WWW, con "
"supporto supporta i protocolli FTP, gopher, ICAP, ICP, HTCP e HTTP. A "
"supporto supporta i protocolli FTP, ICAP, ICP, HTCP e HTTP. A "
"differenza di altri software, Squid gestisce tutte operazioni all'interno di "
"un singolo processo con I/O non bloccante."

Expand Down
6 changes: 2 additions & 4 deletions errors/af.po
Expand Up @@ -809,17 +809,15 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"Squid ondersteun nie alle navraagmetodes vir alle toegangsprotokolle nie. "
"Mens kan by voorbeeld nie 'n Gopher-navraag POST nie."
"Squid ondersteun nie alle navraagmetodes vir alle toegangsprotokolle nie."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"Squid ondersteun nie alle navraagmetodes vir alle toegangsprotokolle nie. "
"Mens kan by voorbeeld nie 'n Gopher-navraag POST nie."
"Squid ondersteun nie alle navraagmetodes vir alle toegangsprotokolle nie."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/az.po
Expand Up @@ -836,17 +836,15 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"Squid bütün sorğu metodları və bütün protokollardəstəkləmir. Məsələn, Gopher "
"protokolu üzrə siz POST sorğu metodunu yerinə yetirə bilməzsiniz."
"Squid bütün sorğu metodları və bütün protokollardəstəkləmir."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"Squid bütün sorğu metodları və bütün protokollardəstəkləmir. Məsələn, Gopher "
"protokolu üzrə siz POST sorğu metodunu yerinə yetirə bilməzsiniz."
"Squid bütün sorğu metodları və bütün protokollardəstəkləmir."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
#, fuzzy
Expand Down
6 changes: 2 additions & 4 deletions errors/bg.po
Expand Up @@ -840,17 +840,15 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"Кеш сървърът не поддържа всички методи на заявка за всички протоколи. "
"Например, не можете да заявите метод POST за протокол Gopher."
"Кеш сървърът не поддържа всички методи на заявка за всички протоколи."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"Кеш сървърът не поддържа всички методи на заявка за всички протоколи. "
"Например, не можете да заявите метод POST за протокол Gopher."
"Кеш сървърът не поддържа всички методи на заявка за всички протоколи."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/ca.po
Expand Up @@ -834,8 +834,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"La <i>cache</i> no admet tots els tipus de petici&oacute; per a tots els "
"protocols. Per exemple, no es pot fer una petici&oacute; tipus POST en el "
"protocol Gopher."
"protocols."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
Expand All @@ -844,8 +843,7 @@ msgid ""
"is currently not supported."
msgstr ""
"La <i>cache</i> no admet tots els tipus de petici&oacute; per a tots els "
"protocols. Per exemple, no es pot fer una petici&oacute; tipus POST en el "
"protocol Gopher."
"protocols."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
#, fuzzy
Expand Down
6 changes: 2 additions & 4 deletions errors/cs.po
Expand Up @@ -831,17 +831,15 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"Squid nepodporuje všechny typy metod u všech protokolů. Např. není možno "
"použit metodu POST u služby GOPHER."
"Squid nepodporuje všechny typy metod u všech protokolů."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"Squid nepodporuje všechny typy metod u všech protokolů. Např. není možno "
"použit metodu POST u služby GOPHER."
"Squid nepodporuje všechny typy metod u všech protokolů."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/da.po
Expand Up @@ -829,8 +829,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"Proxy'en Squid underst&oslash;tter ikke alle foresp&oslash;rgselsmetoder for "
"alle adgangs protokoller. For eksempel kan du ikke POST en Gopher "
"foresp&oslash;rgsel."
"alle adgangs protokoller."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
Expand All @@ -839,8 +838,7 @@ msgid ""
"is currently not supported."
msgstr ""
"Proxy'en Squid underst&oslash;tter ikke alle foresp&oslash;rgselsmetoder for "
"alle adgangs protokoller. For eksempel kan du ikke POST en Gopher "
"foresp&oslash;rgsel."
"alle adgangs protokoller."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/de.po
Expand Up @@ -832,17 +832,15 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"Squid unterstützt nicht alle Anfragemethoden für alle Protokolle. Sie können "
"zum Beispiel keine POST Anfrage über das Gopher Protokoll senden."
"Squid unterstützt nicht alle Anfragemethoden für alle Protokolle."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"Squid unterstützt nicht alle Anfragemethoden für alle Protokolle. Sie können "
"zum Beispiel keine POST Anfrage über das Gopher Protokoll senden."
"Squid unterstützt nicht alle Anfragemethoden für alle Protokolle."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
4 changes: 2 additions & 2 deletions errors/el.po
Expand Up @@ -843,7 +843,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"Το Squid δεν υποστηρίζει όλες τις μεθόδους αιτήσεων για όλα τα πρωτόκολλα "
"πρόσβασης. Για παράδειγμα, το POST για Gopher δεν υποστηρίζεται."
"πρόσβασης."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
Expand All @@ -852,7 +852,7 @@ msgid ""
"is currently not supported."
msgstr ""
"Το Squid δεν υποστηρίζει όλες τις μεθόδους αιτήσεων για όλα τα πρωτόκολλα "
"πρόσβασης. Για παράδειγμα, το POST για Gopher δεν υποστηρίζεται."
"πρόσβασης."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/en.po
Expand Up @@ -832,17 +832,15 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
"Squid does not support all request methods for all access protocols."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
"Squid does not support all request methods for all access protocols."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
2 changes: 1 addition & 1 deletion errors/errorpage.css
Expand Up @@ -73,7 +73,7 @@ p {
pre {
}

/* special event: FTP / Gopher directory listing */
/* special event: FTP directory listing */
#dirmsg {
font-family: courier, monospace;
color: black;
Expand Down
3 changes: 1 addition & 2 deletions errors/es-mx.po
Expand Up @@ -843,8 +843,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"Squid no soporta todos los métodos de solicitud para algunos protocolos de "
"acceso. Por ejemplo, no es posible hacer una solcitud POST a un servidor "
"Gopher."
"acceso."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
msgid ""
Expand Down
4 changes: 2 additions & 2 deletions errors/es.po
Expand Up @@ -850,7 +850,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"Squid no admite todos los m&eacute;todos para todos los protocolos de "
"acceso. Por ejemplo, no se puede hacer un POST a un servidor Gopher."
"acceso."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
Expand All @@ -859,7 +859,7 @@ msgid ""
"is currently not supported."
msgstr ""
"Squid no admite todos los m&eacute;todos para todos los protocolos de "
"acceso. Por ejemplo, no se puede hacer un POST a un servidor Gopher."
"acceso."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/et.po
Expand Up @@ -838,8 +838,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"Squid ei toeta k&otilde;iki p&auml;ringu meetodeid k&otilde;ikide "
"protokollidega. N&auml;iteks, te ei saa teha POST operatsiooni Gopher p&auml;"
"ringus."
"protokollidega."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
Expand All @@ -848,8 +847,7 @@ msgid ""
"is currently not supported."
msgstr ""
"Squid ei toeta k&otilde;iki p&auml;ringu meetodeid k&otilde;ikide "
"protokollidega. N&auml;iteks, te ei saa teha POST operatsiooni Gopher p&auml;"
"ringus."
"protokollidega."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
7 changes: 3 additions & 4 deletions errors/fi.po
Expand Up @@ -823,17 +823,16 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"Squid ei tue kaikkia hakupyynnon tyyppejä kaikilla protokollilla. Et voi "
"esimerkiksi käyttää POST-pyyntöä gopherilla."
"Squid ei tue kaikkia hakupyynnon tyyppejä kaikilla protokollilla."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"Squid ei tue kaikkia hakupyynnon tyyppejä kaikilla protokollilla. Et voi "
"esimerkiksi käyttää POST-pyyntöä gopherilla."
"Squid ei tue kaikkia pääsyprotokollia. Esimerkiksi SSH-protokolla "
"ei ole tällä hetkellä tuettu."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/fr.po
Expand Up @@ -852,8 +852,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"Squid ne prend pas en charge tous les types de requêtes par rapport à tous "
"les protocoles d'accès. Vous ne pouvez pas par exemple utiliser une requête "
"POST avec le protocole Gopher."
"les protocoles d'accès."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
Expand All @@ -862,8 +861,7 @@ msgid ""
"is currently not supported."
msgstr ""
"Squid ne prend pas en charge tous les types de requêtes par rapport à tous "
"les protocoles d'accès. Vous ne pouvez pas par exemple utiliser une requête "
"POST avec le protocole Gopher."
"les protocoles d'accès."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/he.po
Expand Up @@ -827,17 +827,15 @@ msgid ""
"Squid does not support all request methods for all access protocols. For "
"example, you can not POST a Gopher request."
msgstr ""
"שרת ה Squid אינו תומך בכל שיטות הבקשה לכל הפרוטוקולים. לדוגמא אינך יכול "
"לשלוח בקשת POST ב-Gopher."
"שרת ה Squid אינו תומך בכל שיטות הבקשה לכל הפרוטוקולים."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
msgid ""
"Squid does not support some access protocols. For example, the SSH protocol "
"is currently not supported."
msgstr ""
"שרת ה Squid אינו תומך בכל שיטות הבקשה לכל הפרוטוקולים. לדוגמא אינך יכול "
"לשלוח בקשת POST ב-Gopher."
"שרת ה Squid אינו תומך בכל שיטות הבקשה לכל הפרוטוקולים."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down
6 changes: 2 additions & 4 deletions errors/hu.po
Expand Up @@ -836,8 +836,7 @@ msgid ""
"example, you can not POST a Gopher request."
msgstr ""
"A proxyszerver nem támogat minden létező kéréstípus és protokoll "
"kombinációt, így pl. nem lehet POST kéréstípust használni egy Gopher "
"kérésben."
"kombinációt."

#: templates/ERR_PROTOCOL_UNKNOWN+html.body.div.p:27-1
#, fuzzy
Expand All @@ -846,8 +845,7 @@ msgid ""
"is currently not supported."
msgstr ""
"A proxyszerver nem támogat minden létező kéréstípus és protokoll "
"kombinációt, így pl. nem lehet POST kéréstípust használni egy Gopher "
"kérésben."
"kombinációt."

#: templates/ERR_LIFETIME_EXP+html.body.div.p:27-1
msgid ""
Expand Down

0 comments on commit 6ea12e8

Please sign in to comment.