Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ImageProxy] Domain whitelist #229

Open
jonsmy opened this issue Apr 8, 2024 · 5 comments
Open

[ImageProxy] Domain whitelist #229

jonsmy opened this issue Apr 8, 2024 · 5 comments
Assignees
Labels

Comments

@jonsmy
Copy link

jonsmy commented Apr 8, 2024

Default behaviour breaks images that load from internal domains, currently there is no way from within FreshRSS to prevent such domains from going through the configured proxy.

@Frenzie
Copy link
Member

Frenzie commented Apr 8, 2024

Unless I'm missing something I don't think that would help much. Mixed content is blocked after all.

@jonsmy
Copy link
Author

jonsmy commented Apr 9, 2024

The internal domains are using custom certs, things load properly when done directly.

@Frenzie
Copy link
Member

Frenzie commented Apr 9, 2024

I'm not opposed to adding a whitelist, but in that case the more obvious solution would seem to be to use the default settings (i.e., don't force proxy HTTPS).

@jonsmy
Copy link
Author

jonsmy commented Apr 9, 2024

I'm mainly interested in caching and allowing intranet clients to be able to view articles without requiring internet access.

@Frenzie
Copy link
Member

Frenzie commented Apr 9, 2024

I think a simple comma-separated text input (with explode()) should probably do the trick?

I mean around here:
https://github.com/FreshRSS/Extensions/blob/9f21984b8c9e75c48496d285795953642a8ec977/xExtension-ImageProxy/extension.php#L72C1-L74C73

Along these lines (NB untested pseudocode, might accidentally run correctly :-)

    $whitelist = "bla.bla,bleep.bla"; // but from userConf
    $parsed_url = parse_url($url);
    $scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'] : null;
    $host = isset($parsed_url['host']) ? $parsed_url['host'] : null;

    if ($host && in_array($host, explode(',', $whitelist))) {
        return $url;

Please feel free to test and PR; I don't have time to atm and I don't know if I will this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants