@extends('layout.default') @section('breadcrumbs') @endsection @section('page', 'page__whitelisted-image-urls--index') @section('main')

Whitelisted Image URLs

{{ __('common.add') }}

@csrf

@forelse ($whitelistedImageUrls as $whitelistedImageUrl) @empty @endforelse
ID URL Pattern Example bypassed URL {{ __('common.created_at') }} {{ __('forum.updated-at') }} {{ __('common.actions') }}
{{ $whitelistedImageUrl->id }} {{ $whitelistedImageUrl->pattern }} {{ str_replace(['**', '*'], ['my.evil.example/evil', '_evil_'], $whitelistedImageUrl->pattern) }}
  • {{ __('common.edit') }}

    @csrf @method('PATCH')

  • @csrf @method('DELETE')
  • No whitelisted image urls.
    @endsection @section('sidebar')

    {{ __('common.info') }}

    When users add images via BBCode, other users will load the image on page load. This means whoever operates the website of the image URL can view the connecting IPs. Therefore, all images entered via BBCode are proxied.

    In exception cases where the proxy blocks a popular image host, that image URL should be whitelisted here. This will bypass the proxy and directly link the image. Any trusted image URLs can also be included here to increase client image loading speeds.

    You can use * as a wildcard when matching URLs. A * wildcard will match everything except for / and . in the URL. You can also use ** to match any character. You must never use ** for matching subdomains as any user can register their own domain and link https://evil.example/subdomain.whitelisted-domain.example/image.png to bypass the proxy.

    To match a url with a variable subdomain, make sure to manually specify the . otherwise a user can register https://evilimgur.com if you use https://*imgur.com/** (bad) instead of https://*.imgur.com/** (good) or https://i.imgur.com/** (best).

    @endsection