Giter Club home page Giter Club logo

plg_system_httpheader's Introduction

HttpHeader Plugin

This Joomla Plugin implements an UI Layer for the HTTP Security headers so everyone can set and configure them from the backend.

Sponsoring and Donation

You want to support my work for the development of my extensions and my work for the Joomla! Project you can give something back and sponsor me.

There are two ways to support me right now:

  • This extension is part of Github Sponsors by sponsoring me, you help me continue my oss work for the Joomla! Project, write bug fixes, improving features and maintain my extensions.
  • You just want to send me an one-time donation? Great you can do this via PayPal.me/zero24.

Thanks for your support!

Features

This Joomla Plugin helps you to set the following HTTP Security Headers.

  • Strict-Transport-Security
  • Content-Security-Policy
  • Content-Security-Policy-Report-Only
  • X-Frame-Options
  • X-XSS-Protection
  • X-Content-Type-Options
  • Referrer-Policy
  • Expect-CT
  • Feature-Policy

This plugin also comes with some easy defaults for:

  • X-Frame-Options
  • X-XSS-Protection
  • X-Content-Type-Options
  • Referrer-Policy

Note: If you have configured some HTTP Security Headers directly on the server, then this Plugin might create double entries.

Check the output of your HTTP headers after configuring this HTTP Security Headers Plugin. In Google Chrome: Inspect > Network > the output under Headers). In this Plugin you can disable the settings that cause double entries. Also check the Console of your browser for possible errors.

Configuration

Initial setup the plugin

Now the inital setup is completed and you can start configure the headers.

Default Headers

Please note that by default the following headers und values are set:

X-Frame-Options: SAMEORIGIN

More Infos: https://scotthelme.co.uk/hardening-your-http-response-headers/#x-frame-options

X-XSS-Protection: 1; mode=block

More Infos: https://scotthelme.co.uk/hardening-your-http-response-headers/#x-xss-protection

X-Content-Type-Options: nosniff

More Infos: https://scotthelme.co.uk/hardening-your-http-response-headers/#x-content-type-options

Referrer-Policy: no-referrer-when-downgrade

More Infos: https://scotthelme.co.uk/a-new-security-header-referrer-policy/

You can allways choose to disable or change the value for one of those by changing the plugin configuration.

Option descriptions

Force HTTP Header

Using this you can set different values from the default ones and also force headers. The supported headers are:

  • Strict-Transport-Security
  • Content-Security-Policy
  • Content-Security-Policy-Report-Only
  • X-Frame-Options
  • X-XSS-Protection
  • X-Content-Type-Options
  • Referrer-Policy
  • Expect-CT
  • Feature-Policy

Here you can also decide whether the header is applyed only to the frontend and or only the backed or both sites.

HTTP Strict Transport Security (HSTS)

This option activates 'Strict Transport Security' and allows the configuration of the value of that header including Include subdomains, Maximum registration time (max-age) and Preload.

HSTS means that your domain can no longer be called without HTTPS. Once added to the preload list, this is not easy to undo. Domains can be removed, but it takes months for users to make a change with a browser update. This option is very important to prevent 'man-in-the-middle attacks', so it should be activated in any case, but only if you are sure that HTTPS is fully supported for the domain and all subdomains in the long run! The value for 'maximum registration time' must be set to 63072000 (2 years) for recording.

Content Security Policy (CSP)

With this option the Content-Security-Policy rule can be set individually including an dedicated subform for the the different directives as well as setting the rules in Report-Only mode.

Translations

This plugin is translated into the following languages:

  • de-DE by @zero-24
  • en-GB by @zero-24 & @brianteeman
  • fr-FR by @Sandra97 & @YGomiero
  • it-IT by @jeckodevelopment
  • nl-NL by @pe7er

You want to contribute a translation for an additional language? Feel free to create an Pull Request against the master branch.

Update Server

Please note that my update server only supports the latest version running the latest version of Joomla and atleast PHP 7.0. Any other plugin version I may have added to the download section don't get updates using the update server.

Issues / Pull Requests

You have found an Issue or have an question / suggestion regarding the plugin, or do you want to propose code changes? Open an issue in this repo or submit a pull request with the proposed changes against the master branch.

Beyond this repo

This plugin has been included in the Joomla Core (joomla/joomla-cms#18301) and will be part of the upcomming 4.0 Release. Please note that the core the plugin has been renamed to plg_system_httpheaders (extra s) and extended by the new com_csp component for to core distribution.

Special Thanks

David Jardin - @snipersister - https://www.djumla.de/ & Yves Hoppe - @yvesh - https://compojoom.com/

For giving me the inspiration for the plugin and their feedback on the actual implementation. Thanks ๐Ÿ‘

Joomla! Extensions Directory (JED)

This plugin can also been found in the Joomla! Extensions Directory: HTTPHeader by zero24

Release steps

  • build/build.sh
  • git commit -am 'prepare release HttpHeader 1.0.x'
  • git tag -s '1.0.x' -m 'HttpHeader 1.0.x'
  • git push origin --tags
  • create the release on GitHub
  • git push origin master

plg_system_httpheader's People

Contributors

zero-24 avatar pe7er avatar ygomiero avatar snipersister avatar jeckodevelopment avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.