Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 1.77 KB

mixed-content.md

File metadata and controls

32 lines (24 loc) · 1.77 KB
name severity cvss-score cvss-vector cwe-id cwe-name compliance
Mixed content
low
6.5
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N
CWE-319
Cleartext Transmission of Sensitive Information
HIPAA ISO 27001 owasp10 pci PCI v4.0
164.306(a), 164.312(c)(1), 164.312(e)(1)
A.5.14, A.8.24
A2
4.1, 6.5.4
pci4-4.2.1, pci4-6.2.4

The application is loaded over an HTTPS connection but it loads resources over an unencrypted connection, in HTTP. If an attacker is strategically positioned between the victim and the applications it can eavesdrop all communications between them. In this case, it would only be able to eavesdrop the resource loaded over HTTP, but it could modify its contents to affect other parts of the application, even if they are loaded over a secure connection.

A possible scenario would be for the attacker to modify some JavaScript content, loaded over HTTP, that handles the login form submission. Suppose the destination host of the login request is defined in the JavaScript file and the attacker changes it to host controlled by him, thus getting access to the victim's credentials.

How to fix

{% tabs mixed-content %} {% tab mixed-content generic %} All resources present in the page must be loaded over HTTPS, including those served from third-party services, such as those used for analytics.

Resources provided by third-parties are normally available over HTTPS, and most of the times is just a matter of replacing http with https. However, you should always consult the documentation of the service to ensure you are loading the resource from the proper URL.

For resources that are not available over HTTPS, you can create a HTTPS reverse proxy that loads the resource with HTTP and serve it over HTTPS. {% endtab %}

{% endtabs %}