Secure HTTPS by FriendsOfFlarum

License Latest Stable Version Downloads

Extiverse

Change all images in post content using HTTP to HTTPS. Original by @Davis.

Installation

Use Bazaar or install manually with composer:

composer require fof/secure-https

Updating

composer update fof/secure-https

Links

An extension by FriendsOfFlarum, revival commissioned by webdeveloper.com.

    8 months later

    Very good, some plugins are not resolved through the https protocol, using your plugin

      5 days later

      datitisev Sorry, I may have expressed an error. Some pictures have an unsafe logo in the case of https. I solved it with your extension.

      6 days later

      How Do I fix this?

      Package "fof/secure-https" listed for update is not installed. Ignoring.
      Loading composer repositories with package information
      Updating dependencies (including require-dev)
      Your requirements could not be resolved to an installable set of packages.
      
        Problem 1
          - intervention/image 2.5.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
          - intervention/image 2.5.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
          - intervention/image 2.5.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
          - Installation request for intervention/image (locked at 2.5.0) -> satisfiable by intervention/image[2.5.0].
      
        To enable extensions, verify that they are enabled in your .ini files:
          - /opt/alt/php71/etc/php.ini
          - /opt/alt/php71/link/conf/alt_php.ini
        You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

        SpacellaGaming You need the php extension fileinfo in your system. It depends on your Linux distribution on how you install it, I recommend looking up how to do so online. Do make sure it is for php 7.1 though, as that is what you are using.

        2 months later
        a year later

        010101 Can you post an example URL of the GIF link that produces a 404 error?

          datitisev

          With this extension:

          https://www.sitbreathe.be/api/fof/secure-https/https%3A%2F%2Fmedia3.giphy.com%2Fmedia%2F13DMEAmpAngKDC%2Fgiphy-downsized.gif%3Fcid%3D41e3ab5fqj88y8qsqr1h6lp1osn4t4qd556slr360etooi1u%26rid%3Dgiphy-downsized.gif

          Without:

          https://media2.giphy.com/media/lkK7hFTOp1s4g/giphy.gif?cid=41e3ab5flt7uolqt9u699djyl6zft88rjqdgc3qzfu0j9k02&rid=giphy.gif

          P.S. I don’t have any issues with regular images and other embeds with this extension enabled. Maybe Giphy does something weird on their end which makes things like this not work. Who knows.

          2 months later

          0.2.0

          • beta 14 ready 🥳
          Update
          composer require fof/secure-https:^0.2.0
          php flarum cache:clear
          8 days later

          0.2.1

          Updating
          composer require fof/secure-https:^0.2.1
            a month later

            0.3.0

            • Flarum beta 15 support
            5 days later

            Error on beta.15:

            flarum.ERROR: RuntimeException: Tag 'IMG' does not exist in /app/vendor/s9e/text-formatter/src/Configurator/Collections/TagCollection.php:34
            Stack trace:
            #0 /app/vendor/s9e/text-formatter/src/Configurator/Collections/NormalizedCollection.php(185): s9e\TextFormatter\Configurator\Collections\TagCollection->getNotExistException('IMG')
            #1 /app/vendor/s9e/text-formatter/src/Configurator/Collections/NormalizedCollection.php(241): s9e\TextFormatter\Configurator\Collections\NormalizedCollection->get('IMG')
            #2 /app/vendor/fof/secure-https/src/Listeners/ModifyContentHtml.php(42): s9e\TextFormatter\Configurator\Collections\NormalizedCollection->offsetGet('IMG')
            #3 /app/vendor/illuminate/events/Dispatcher.php(369): FoF\SecureHttps\Listeners\ModifyContentHtml->configuring(Object(Flarum\Formatter\Event\Configuring))
            #4 /app/vendor/illuminate/events/Dispatcher.php(218): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('Flarum\\Formatte...', Array)
            #5 /app/vendor/flarum/core/src/Formatter/Formatter.php(157): Illuminate\Events\Dispatcher->dispatch('Flarum\\Formatte...')
            #6 /app/vendor/flarum/core/src/Formatter/Formatter.php(192): Flarum\Formatter\Formatter->getConfigurator()
            #7 /app/vendor/illuminate/cache/Repository.php(418): Flarum\Formatter\Formatter->Flarum\Formatter\{closure}()
            #8 /app/vendor/flarum/core/src/Formatter/Formatter.php(193): Illuminate\Cache\Repository->rememberForever('flarum.formatte...', Object(Closure))
            #9 /app/vendor/flarum/core/src/Formatter/Formatter.php(236): Flarum\Formatter\Formatter->getComponent('js')
            #10 /app/vendor/flarum/core/src/Forum/ForumServiceProvider.php(105): Flarum\Formatter\Formatter->getJs()
            #11 [internal function]: Flarum\Forum\ForumServiceProvider->Flarum\Forum\{closure}()
            #12 /app/vendor/flarum/core/src/Frontend/Compiler/Source/StringSource.php(35): call_user_func(Object(Closure))
            #13 /app/vendor/flarum/core/src/Frontend/Compiler/Source/StringSource.php(46): Flarum\Frontend\Compiler\Source\StringSource->getContent()
            #14 /app/vendor/flarum/core/src/Frontend/Compiler/RevisionCompiler.php(239): Flarum\Frontend\Compiler\Source\StringSource->getCacheDifferentiator()
            #15 /app/vendor/flarum/core/src/Frontend/Compiler/RevisionCompiler.php(73): Flarum\Frontend\Compiler\RevisionCompiler->calculateRevision(Array)
            #16 /app/vendor/flarum/core/src/Frontend/Compiler/RevisionCompiler.php(125): Flarum\Frontend\Compiler\RevisionCompiler->commit()
            #17 /app/vendor/fof/nightmode/src/Content/Assets.php(119): Flarum\Frontend\Compiler\RevisionCompiler->getUrl()
            #18 [internal function]: FoF\NightMode\Content\Assets->FoF\NightMode\Content\{closure}(Object(Flarum\Frontend\Compiler\JsCompiler))
            #19 /app/vendor/fof/nightmode/src/Content/Assets.php(120): array_map(Object(Closure), Array)
            #20 /app/vendor/fof/nightmode/src/Content/Assets.php(55): FoF\NightMode\Content\Assets->getUrls(Array)
            #21 /app/vendor/flarum/core/src/Frontend/Frontend.php(63): FoF\NightMode\Content\Assets->__invoke(Object(Flarum\Frontend\Document), Object(Laminas\Diactoros\ServerRequest))
            #22 /app/vendor/flarum/core/src/Frontend/Frontend.php(55): Flarum\Frontend\Frontend->populate(Object(Flarum\Frontend\Document), Object(Laminas\Diactoros\ServerRequest))
            #23 /app/vendor/flarum/core/src/Frontend/Controller.php(32): Flarum\Frontend\Frontend->document(Object(Laminas\Diactoros\ServerRequest))
            #24 /app/vendor/flarum/core/src/Http/RouteHandlerFactory.php(38): Flarum\Frontend\Controller->handle(Object(Laminas\Diactoros\ServerRequest))
            #25 /app/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Laminas\Diactoros\ServerRequest), Array)
            #26 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ExecuteRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Closure))
            #27 /app/vendor/fof/oauth/src/Middleware/ErrorHandler.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #28 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): FoF\OAuth\Middleware\ErrorHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #29 /app/vendor/fof/masquerade/src/Middleware/DemandProfileCompletion.php(58): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #30 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): FoF\Masquerade\Middleware\DemandProfileCompletion->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #31 /app/vendor/fof/secure-https/src/Middlewares/ContentSecurityPolicyMiddleware.php(32): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #32 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): FoF\SecureHttps\Middlewares\ContentSecurityPolicyMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #33 /app/vendor/flarum/core/src/Http/Middleware/ShareErrorsFromSession.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #34 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ShareErrorsFromSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #35 /app/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(40): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #36 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #37 /app/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #38 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ResolveRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #39 /app/vendor/flarum/core/src/Http/Middleware/SetLocale.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #40 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\SetLocale->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #41 /app/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(32): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #42 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #43 /app/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(51): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #44 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\RememberFromCookie->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #45 /app/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #46 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\StartSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #47 /app/vendor/flarum/core/src/Http/Middleware/CollectGarbage.php(46): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #48 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CollectGarbage->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #49 /app/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #50 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ParseJsonBody->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #51 /app/vendor/migratetoflarum/canonical/src/Middlewares/CanonicalRedirectMiddleware.php(49): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #52 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): MigrateToFlarum\Canonical\Middlewares\CanonicalRedirectMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #53 /app/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #54 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\HandleErrors->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #55 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #56 /app/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #57 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\RequestHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #58 /app/vendor/middlewares/base-path-router/src/BasePathRouter.php(97): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #59 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePathRouter->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #60 /app/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(42): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #61 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Laminas\Stratigility\Middleware\OriginalMessages->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #62 /app/vendor/middlewares/base-path/src/BasePath.php(53): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #63 /app/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePath->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
            #64 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
            #65 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(73): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
            #66 /app/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
            #67 /app/vendor/flarum/core/src/Http/Server.php(42): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
            #68 /app/public/index.php(22): Flarum\Http\Server->listen()
            #69 {main}

            Makes the forum unable to load. When disabling this extension, everything's okay. Not sure what went wrong, I am happy to provide more info if needed. Might be FreeFlarum's PHP version, or that we have outdated package(s) with missing functions.

              SKevo I think this error happens if bbcode and/or markdown are disabled, or if they are enabled after this extension. Enable bbcode/markdown first, then this extension.

              We might need better error handling for that, or maybe use the extension requirement feature of Flarum beta 14.