HTML5 – Security
Security is an important consideration when developing web pages and applications, as it helps to protect the confidentiality, integrity, and availability of your web application. HTML5 introduces several new features that can help to improve the security of web pages and applications.
One way to improve the security of a web page is to use the Content-Security-Policy
HTTP header to specify the content that is allowed to be loaded by the web page. The Content-Security-Policy
header allows you to specify a set of rules that define the content that is allowed to be loaded, such as scripts, stylesheets, images, etc.
Here is an example of how to use the Content-Security-Policy
header to specify that only scripts and stylesheets from the same origin are allowed to be loaded:
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'
In this example, the default-src
directive is used to specify that all types of content are allowed to be loaded from the same origin, and the script-src
and style-src
directives are used to specify that only scripts and stylesheets are allowed to be loaded from the same origin.
Another way to improve the security of a web page is to use the X-Frame-Options
HTTP header to prevent the web page from being embedded in an iframe. The X-Frame-Options
header allows you to specify whether the web page can be displayed in an iframe, and if so, from which origins.
Here is an example of how to use the X-Frame-Options
header to prevent the web page from being displayed in an iframe:
X-Frame-Options: deny
In this example, the deny
value is used to specify that the web page cannot be displayed in an iframe.
You can also use the HTTP Strict Transport Security
(HSTS) HTTP header to enforce the use of secure connections (i.e. HTTPS) for your web application. The HSTS
header allows you to specify that the web browser should only use secure connections when accessing your web application, and that it should remember this preference for a specified period of time.
Here is an example of how to use the HSTS
header to enforce the use of secure connections for your web application:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
In this example, the max-age
directive is used to specify that the preference for secure connections should be remembered for 31536000 seconds (i.e. 1 year), the includeSubDomains
directive is used to specify that the preference should apply to all subdomains, and the preload
directive is used to specify that the web application should be included in the HSTS preload list.
You can also use the Subresource Integrity
(SRI) feature to ensure that the resources loaded by your web application have not been modified. The SRI
feature allows you to specify a cryptographic hash of a resource, and the browser will verify that the resource has not been modified by comparing the calculated hash with the specified hash.
Here is an example of how to use the SRI
feature to ensure that a script has not been modified:
<script src="/script.js" integrity="sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1QzKMZU7QtW94="></script>
In this example, the integrity
attribute is used to specify the cryptographic hash of the script.js
file.