Joomla x frame options

Joomla x frame options

Полезно, для защиты сайта запрещать его отображение в фреймах на других сайтах.

Чтобы поставить полный запрет загрузки фреймов сайта на чужих сайтах, достаточно добавить в ответ сервера заголовок X-Frame-Options с соответствующим значением. Отдать заголовок X-Frame-Options можно как с помощью директивы разными способами.

А делается это совсем не сложно.

1. Отправка серверного заголовка, запрещающего браузеру показывать содержимое во фрейме

Если есть доступ к Апачу, то в файле httpd.conf просто добавляем строку:

Header always append X-Frame-Options SAMEORIGIN

Пояснение: Значения заголовка X-Frame-Options

DENY Полный запрет просмотра сайта в фреймах, включая фреймы собственного сайта
SAMEORIGIN Разрешает просмотр сайта в фреймах только на страницах своего сайта
ALLOW-FROM uri Разрешает просмотр сайта в фреймах только на страницах указанного сайта(на момент публикаци не поддерживается большинством браузеров)

2. Также можно при помощи php. В файле index.php в корне сайта :

3. При помощи Javascript

Код позволит выявить, загружается ли ваш документ во фрейме, если да – то загрузка останавливается соответствующей командой. Вставить код надо в HEAD:

Источник

Joomla 4 Security HTTP Headers

2 Minutes, 35 Seconds to Read

Learning how to secure Joomla 4 is easier than ever before. With the pre-installed HTTP Headers Joomla plugin, you can add up to ten security HTTP headers to protect your data against next-generation cyber attacks.

How to Secure Joomla 4 with HTTP Headers

  1. Log into your Joomla 4 administrator dashboard (e.g. https://example.com/administrator).
  2. Select System from the sidebar.
  3. Under Manage, select Plugins.
  4. Search for “System – HTTP Headers” and select it.

X-Frame-Options specifies whether or how your website can be embedded in another web app or site using iframes. This will harden Joomla against clickjacking. The options for this header are “DENY” and “SAMEORIGIN” (meaning you can embed your website within itself). This is enabled and set to “SAMEORIGIN” by default.

Referrer-Policy can remove sensitive content from the refererr header within URI requests (e.g. password reset URLs). There are nine options in the drop-down menu:

  • empty string – no preference
  • no-referrer – no referrer info sent
  • no-referrer-when-downgrade – full URL unless visiting HTTP page from HTTPS page (default behavior when no policy specified)
  • same-origin – only origin (root domain – e.g. example.com instead of example.com/blog) for within the same site
  • origin – only origin
  • strict-origin – origin only when security level is the same (e.g. HTTPS to HTTPS)
  • origin-when-cross-origin – full URL for within the same site, but only origin externally
  • strict-origin-when-cross-origin – full URL within site, only origin when protocol security level is the same (e.g. HTTPS to HTTPS), and no info from HTTPS to HTTP
  • unsafe-url – full URL (not recommended)

This is set to “strict-origin-when-cross-origin” by default.

Cross-Origin-Opener-Policy (COOP) opens external documents in a separate browsing context group to prevent cross-scripting (XS) attacks.

  • unsafe-none – no protection unless opener has stronger COOP policy
  • same-origin-allow-popups – page keeps references to same-origin popups
  • same-origin – cross-origin documents are opened in a separate browsing context

This is set to “same-origin” by default.

The Force HTTP Headers section allows you to add custom HTTP headers. Most notable among the group is Feature-Policy which blocks unnecessary browser features for user privacy (e.g. camera and WebUSB API). This is now superseded by Permissions-Policy. For example, this disables the user’s mic and webcam while allowing full screen for within the site and a Jitsi Meet video conference:

This is set to “interest-cohort=()” by default.

Configure HTTP Strict Transport Security (HSTS) from a tab at the top. HSTS forces web browsers to only load your website using secure (HTTPS) connection. Enabling Joomla HSTS works with SSL 301 redirects to protect against HTTP downgrade attacks.

You must have a valid SSL certificate on your website while HSTS is enabled. Otherwise, your website will become inaccessible.

Источник

Управление заголовками HTTP в Joomla 4

Вступление

Как использовать новое управление заголовками HTTP в Joomla 4.0

Начиная с Joomla 4.0, Joomla представила систему управления заголовками HTTP. Эта система предназначена для того, чтобы помочь владельцам сайтов настроить заголовки безопасности HTTP из новой админки Joomla 4.

В этом руководстве вы найдете информацию о том, как настроить эту новую систему на своем сайте.

Плагин Joomla 4.0

Система — Заголовки HTTP (plg_system_httpheaders)

Перейдите в раздел СистемаПлагиныСистемные заголовки HTTP ( SystemPluginsSystem — HTTP Headers ), чтобы получить доступ к конфигурации плагина.

Конфигурация плагина

На этой странице вы можете включить запись заголовков в файлы конфигурации сервера ( .htaccess и web.config ) и настроить, включение следующих заголовков http

Используя форму «Принудительный заголовок» (Force Header), вы также можете принудительно ввести следующие заголовки со значениями:

Читайте также:  Linux and ldap authentication

Конфигурация строгой транспортной безопасности (HSTS — Strict-Transport-Security)

На этой странице вы можете включить заголовок Строгой транспортной безопасности (HSTS — Strict-Transport-Security), а также настроить максимальное значение возраста, следует ли включать поддомены и хотите ли вы быть добавлены в список предварительной загрузки (Preload List) браузеров.

Компонент Joomla 4.0

Политика безопасности контента (Content Security Policy) (com_csp)

Перейдите в раздел СистемаПолитика безопасности содержимого ( SystemContent Security Policy ), чтобы получить доступ к панели мониторинга Отчетов о политике безопасности содержимого.

Отчеты (Reports)

На этом экране Администратор CMS Joomla 4 имеет общий обзор собранных отчетов о Политике безопасности контента и имеет возможность просматривать, публиковать, отменять публикацию и удалять предлагаемые правила управления Политикой безопасности контента.

Чтобы узнать больше, пожалуйста, ознакомьтесь с разделом: Интерфейс политики безопасности контента

Настройки (Options)

На этом экране вы можете настроить параметры компонента CMS Joomla 4, такие как разрешения и, в частности, параметры Политики безопасности содержимого, включая различные режимы и то, находятся ли заголовки в режиме только для чтения.

Чтобы узнать больше, пожалуйста, ознакомьтесь с разделом: Параметры политики безопасности контента

Примечания

Когда вы настроили некоторые заголовки безопасности HTTP непосредственно на сервере, наши инструменты могут создавать двойные записи.

Проверьте вывод ваших HTTP-заголовков после настройки в консоли браузера. В Google Chrome: Inspect > Network > the output under Headers . Вы можете отключить заголовки, которые вызывают двойные записи. Также проверьте консоль вашего браузера на наличие возможных ошибок.

Разработчикам расширений для CMS Joomla 4.0

Как вы, возможно, знаете, большое преимущество безопасности в отношении Политики безопасности контента возникает, когда мы можем использовать заголовок для блокировки всех встроенных JavaScript и встроенных CSS, влияющих, например, на обработчики событий JavaScript с помощью атрибутов HTML. Таким образом, с включенной защитой браузера мы заблокируем использование встроенного JavaScript и встроенного CSS также для ваших расширений. Эта защита не включена по умолчанию, но может быть включена вашими пользователями.

Для Joomla версии 4.0 рекомендуется запустить интерфейс вашего расширения с включенной строгой политикой безопасности содержимого. Для совместимости с 4.1 рекомендуется, чтобы это также применялось к вашему бэкэнду.

Мы знаем, что по-прежнему требуется встроенный JavaScript и CSS, по этой причине мы внедрили поддержку nonce и hash в наши API-интерфейсы документов, когда вы их используете, ядро Joomla будет следить за тем, чтобы они были занесены в белый список, но мы все равно будем блокировать любые вредоносные программы для защиты наших сайтов.

Важные примечания для разработчиков расширений

Начиная Joomla 4.0 Политика безопасности контента:

  • поставляется ядром;
  • отключена по умолчанию;
  • может быть включена вашими пользователями;
  • настоятельно рекомендуется, чтобы ваш интерфейс расширения работал по Joomla версии 4.0 с включенной политикой безопасности контента;
  • рекомендуется, чтобы ваш сервер расширения работал по Joomla версии 4.1 с включенной политикой безопасности контента.

При включенной строгой политике безопасности контента будут заблокированы следующие функции:

  • выполнение JavaScript через обработчики событий в HTML (onXXX обработчики, такие как onClick и подобные);
  • исполненный на странице код JavaScript не передается странице по Document API;
  • выполнение JavaScript-кода вводится в API модели DOM, такие как eval();
  • использование встроенных в страницы CSS не перешли на страницу по Document API;
  • использование встроенных CSS правил использования HTML стиля атрибутов.

Чтобы ваши расширения работали даже при включенной строгой политике безопасности контента (Content Security Policy), самый простой способ-использовать Document API для применения встроенного JavaScript и CSS, пожалуйста, ознакомьтесь с примерами ниже.

Добавление JavaScript с помощью API Joomla

Добавление CSS с помощью API Joomla

Более подробную информацию можно найти здесь: Добавление JavaScript и CSS на страницу.

Заберите ссылку на статью к себе, чтобы потом легко её найти: выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи!

Источник

HTTP-Header and Content Security Policy in Joomla 4

At first glance, the task of a browser seems simple: it displays text and images that you send it. On closer look, everything becomes more complex. Web standards have to be supported, usability is high on the agenda and developers need tools. On top of that, the web is a tricky place. Websites are constantly under automated attack. To protect against various attack vectors, software manufacturers have implemented HTTP headers that enable the website to activate security functions in the web browser and thus block or make attack patterns more difficult.

How to make the headers visible

HTTP headers are often confused with the element of an HTML document. You will not find HTTP headers in the HTML header! They are in the HTTP protocol. This forms the basis of the World Wide Web. HTTP is the language used by browsers and web servers to communicate. Together with the visible content, information about the data is transmitted. This information is in the header of the browser response — in the head of the HTTP-Response[^developer.mozilla.org/en/docs/web/http#the_structure_of_a_server-response]. Therefore the name Header. To view them, open the network tab of the browser developer tools.

With the tool Security Headers by Scott Helme[^securityheaders.com/] it is possible to check the HTTP headers and their configuration. The service reads out all set values, evaluates them and forms a rating from them. The following image shows an example report.

An alternative test tool is Webbkoll. This is a project from Sweden funded by Internetfonden among others. The source code is open source and available on Github. If you meet the technical requirements, you can host Webbkoll on your own server. It is easier to use an already existing Webbkoll instance, as offered at https://webbkoll.dataskydd.net.

What Joomla 4 offers

Читайте также:  Xrdp kali linux вылетает

Joomla 4 supports users with the plugin System — HTTP Headers to configure a secure Content Security Policy. Make sure that this plugin is activated if you want to use it.

Originally, there was to be an additional component. Reports about the content security policy could have been managed via this component. This was removed with the PR github.com/joomla/joomla-cms/pull/33550. In the Content Security Policy chapter, I describe a way to receive the reports by email.

I describe the most important HTTP headers and the configuration in Joomla 4.

First of all: If you test your website under localhost , you should note that not all the functions described here can be tested locally.

HTTP Security Headers in Detail

The following security headers are HTTP Response Headers, which the web server passes to the web browser with the data of the web page. The browser then activates security functions.

Special HTTP Headers in the Joomla 4 Plugins HTTP Header

In the Joomla Plugin, the three headers X-Frame-Options, Referrer-Policy and Cross-Origin-Opener-Policy are displayed in the upper area and the header Strict-Transport-Security can be configured in a separate tab.

The X-Frame-Options header prevents Clickjacking. This technique loads a third-party website into your own via an iframe tag. The aim is to get a user to provide sensitive data — for example, login details. As soon as a site tries to load another as iframe, the browser checks the website to be embedded. If the X-Frame-Options Header is set there, the page is not loaded. This way, it is possible to prevent other websites from embedding one’s own website in their content and pretending to be oneself.

The header offers three possible directives: ‘DENY’, ‘SAMEORIGIN’, and ‘ALLOW-FROM’.

In Joomla 4, the header can be set in different ways. On the one hand, there is a separate option ‘X-Frame-Options’. If this is activated, the plugin sets the header with the policy ‘SAMEORIGIN’. This will be the desired function in most cases. In your own domain, it is still possible to integrate your own content via iFrame. Outside the domain, this is forbidden.

If ALLOW-FROM or DENY is required, this can be configured in the plugin:

In addition, the setting of the header is possible via .htaccess file:

Note: If you have activated the option in the upper area, SAMEORIGIN will always be set. If you manually configure the ALLOW-FROM or DENY in the lower area, then it is necessary to deactivate the option in the upper area.

X-Frame-Option in the Joomla 4 Content Security Policy](/images/header5.png)

Referrer Policy instructs the browser to remove the referrer and not to send it to the next site.

The Referer Request Header contains the address of the previously visited website, which includes a link to the currently requested page. The Referer header allows servers to see where the people visiting them are coming from and to use this data for analysis, logging or caching, for example.

In the Joomla plugin, all possible options are selectable in a dropdown. The default setting in the plugin provides the option ‘no-referrer-when-downgrading’.

Referrer-Policy in the Joomla 4 Content Security Policy](/images/header4.png)

By using .htaccess the header can also be set:

The Cross-Origin-Opener-Policy (COOP) header provides the ability to request a new browser context to better isolate itself from other untrusted calls.

The Cross-Origin Resource Policy Header (CORP) allows websites and applications to protect themselves against certain cross-origin requests.

Cross-Origin Resource Sharing (CORS) is an HTTP header-based mechanism that allows a server to specify origins (domain, scheme or port) other than its own from which a browser should allow resources to be loaded.

The Cross-Origin Embedder Policy (COEP) is used to prevent requests from being loaded that are not of the same origin, unless this is explicitly permitted via CORS or CORP.

Using .htaccess , the header can also be set. Here is an example:

The Strict-Transport-Security (HSTS) header can be configured in the plug-in in a separate tab. It provides additional security for all sites that are encrypted with HTTPS. If the header is set, the browser rejects all unencrypted HTTP connections.

For sites that have been switched from HTTP to HTTPS, there is a high probability that a link can be found that is not provided with the additional S. Without HSTS, this link would be forwarded unencrypted via HTTP. Websites equipped with HSTS deliver all content via HTTPS without exception. Links are rewritten. This way, potential attackers will not find anything unencrypted in the transmission.

In the plugin, for example, the value ‘max-age=31536000; includeSubDomains’ can be configured. The following image shows the configuration via the option Force HTTP Headers.

max-age tells the browser to save the domain. The value 31536000 is in seconds and represents one year. With the option includeSubDomains the browser extends the function to all subdomains.

If preload is activated, the domain is stored in the preload list.

Via .htaccess the header is to be activated as follows:

Despite the advantages, HSTS is criticised because website operators are able to read user information. Access is complicated, but possible.

Weitere Plugins im Bereich Force HTTP Headers

Читайте также:  Как перевезти струйный принтер

HTTP Header Feature-Policy

The HTTP header feature policy is relatively young and far-reaching. It tells the browser which functions the site needs. If no access to the microphone is necessary, a possible attacker has no access to these browser functions — provided the header is set correctly.

The structure is straightforward:

Via the Joomla plugin, the header can be configured as follows:

Using .htaccess , the entry for a banning of microphone and geolocation looks like this:

The Expect-CT header allows websites to enforce the requirements of Certificate Transparency.

When a website enables the use of the Expect-CT header, the browser checks each certificate used in connection with the website in public CT protocols.

The Content-Security-Policy or CSP is the icing on the cake of HTTP headers.

Without CSP, a browser loads all content, no matter from where. This is helpful in many cases. The problem is that not every site is trustworthy. I am referring to the invocation of malicious script code via Cross Site Scripting (XSS). The dangerous thing is that as a website operator, you don’t have things in your own hands if foreign content can be called up. Then it is sufficient for the attacker to pollute a linked site with malicious code.

CSP offers a high level of protection, but requires expertise. Basically, one creates a list of all resources that the website needs. Everything else is blocked by the browser. This makes it clear: if you don’t know what you’re doing, you can disable your website with a content security policy. In the most restrictive setting, the browser only allows content that comes from the calling domain itself ( self ).

With Joomla 4.0, inline scripts and styles were largely eliminated from the Joomla Core. Unfortunately, extensions still use inline JavaScript and inline CSS styles. Therefore, the loading of inline elmenets is usually necessary and should not be interrupted. For this reason, only an ‘A’ rating and not an ‘A+’ rating is usually achievable with a Joomla website.

The header is structured as follows:

The list of possible directives is long and is supported by all common browsers.

When implementing the content security policy, it makes sense to activate the report-only mode and to set up a reporting endpoint. The browser sends all violations of the CSP to this endpoint. This way, the website can be adjusted before the rule is armed and website functions no longer work. The use of this directive is only recommended if you know what you are causing. In the worst case, the Joomla administration area will no longer function.

If you want to receive a report by e-mail, the script at the address https://github.com/zero-24/csp-reporter-php offers a possibility.

Setting the content security policy in a .htaccess looks like this, for example:

Many sites include inline styles and inline scripts, so it is necessary to add unsafe-inline for the site to work correctly.

The header X-Content-Type-Options is straightforward to configure, has been included in the Joomla Core .htaccess since Joomla 3.9.13 and is recommended for all Joomla websites.

There is one valid value. This is nosniff . If the header is set, the browser does not try to guess the mime type (file type) of a file. This is no longer necessary with today’s websites and leads to unnecessary security problems.

Ideally, this header is set in the file .htaccess . This way, the security function is activated independently of Joomla on web server levels:

I mention this header for the sake of completeness. It is not configurable in the Joomla 4 backend. The HTTP X-XSS-Protection header was intended to activate an XSS auditor in the browser. Modern browsers do not take this header into account [any more]https://portswigger.net/daily-swig/google-deprecates-xss-auditor-for-chrome).

The recommended configuration for older browsers is: 1; mode=block . In Joomla 4, the header can only be configured via the file .htaccess . The header is set directly with the .htaccess file as follows:

The scotthelme.co.uk page provides an overview in English of all supported functions and directives in the Content Security Policy. It can be used as a quick reference to identify valid and invalid directives and values, and includes sample policies and guidance on how to use CSP effectively.

The CSP Evaluator allows developers and security professionals to verify that a Content Security Policy (CSP) is a strong possibility against cross-site scripting attacks. It supports the process of reviewing CSP policies, which is usually a manual task, and helps identify CSP bypasses that undermine the value of a policy. The CSP Evaluator checks are based on a large-scale study and are designed to help developers harden their CSP and improve the security of their applications. This tool (also available as a Chrome extension) is provided for the developer’s and Google makes no warranties or guarantees for this tool.

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector