Repository navigation
Conversation
Bortseb
force-pushed
the
public-http-proxy
branch
from
August 18, 2026 19:45
1fd795b to
05c96de
Compare
HTTPS origins cannot fetch HTTP wiki sites directly (mixed content), so how-to-wiki and other default neighbor resources stay broken for visitors who are not signed in. Add public_proxy so farms can open /proxy without a login, while signed-in owners keep existing localhost/LAN behavior. Anonymous requests resolve the host and refuse private addresses, and do not follow redirects.
Bortseb
force-pushed
the
public-http-proxy
branch
from
August 20, 2026 18:17
badf2ec to
9dddd8f
Compare
Author
|
Follow-up idea (not in this PR): with A small next step would be per-IP (and maybe per-remote-host) rate limits plus a response size cap. Happy to open a follow-up if that sounds useful. |
Member
|
Open proxy is a NO NO |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
public_proxyconfig flag (defaultfalse) so anonymous visitors on an HTTPS wiki can use/proxyto fetch HTTP-only remote pages. (Like much of the resources in how-to-wiki for example)/proxybehavior, including localhost and LAN targets./proxyrequests that target (or resolve to) localhost or private/link-local addresses are rejected; redirects are not followed for those callers.Why this is useful
Many default and how-to-wiki resources in the federation still live on HTTP-only sites. When a reader is on HTTPS, the browser blocks those fetches as mixed content. The existing
/proxyroute already solves that for signed-in owners, but ordinary visitors hit 403, so linked how-to-wiki pages and similar neighbor content look broken.With
public_proxy: true, a farm can make that mixed-content bridge available to everyone without changing the client.Safety (opt-in, not an open proxy)
This is not a general open proxy:
public_proxyis set..json,.png,.jpg, andplugin/...(wiki-shaped resources, not arbitrary URLs).http://to the remote host.Enable with:
{ "public_proxy": true }in the wiki config.You can test this change out with the public proxy turned on here:
https://public-proxy.aolc.cc/view/welcome-visitors/view/how-to-wiki/fed.wiki.org/field-guide-to-the-federation
Test plan
public_proxy): anonymous/proxy/...still returns 403; signed-in owner still works as before (including localhost if used).public_proxy: true: anonymous fetch of a public HTTP wiki page JSON via/proxy/{host}/{slug}.jsonsucceeds.public_proxy: true: anonymous/proxy/127.0.0.1/...and/proxy/localhost/...return 403.public_proxy: true: a hostname that resolves to a private IP is rejected (403).public_proxy: true: anonymous requests do not follow redirects to another host./proxywithout signing in.