WHAT IS HELMETjs?
Tags: webdev, javascript, programming, tutorial
Published: 2023-12-28 13:41:51

**Introduction**

In our modern online world, where the creation and launching of websites are on the rise, having strong security measures is not optional, cyber-attacks are a big problem for businesses and the developers that build apps for these businesses, exploiting weaknesses in businesses. 

With this environment in mind, helmetjs a javascript framework has emerged as one of the best frontline defenses—intent on safeguarding express apps from a myriad of attacks.

**Prerequisites**

- Fundamentals of Express.js and middleware concept
- Basic understanding of HTTP headers and their significance in web security
- JavaScript and Node.js familiarity for implementation aspects

**So what exactly is Helmet.js**

Let's think of helmetjs as a guardian to our web app. Imagine that our app is a house with doors and windows, sometimes we forget to close a window or close a door and this leaves the house vulnerable to would-be thieves and robbers.

Helmetjs automatically closes these entry points on our web app. Helmetjs implements an array of security measures like ensuring that all windows and doors, and makes sure they are locked tight. This makes it much harder for hackers to have a field day inside our application. 

Helmet.js is like a security guard that protects your application by setting up safety measures automatically, so you don't have to manually secure each part of your app. It makes sure your application is as safe and secure as it can be.

Helmet.js at its heart is made up of several smaller middleware functions, with each one focusing on a particular part of web security. These middleware functions work by modifying HTTP headers to improve protection against different kinds of attacks. 

The core idea is that Helmet.js bundles together these smaller middleware functions, each targeting a specific web security issue, to provide an overall robust defense through manipulating HTTP headers.


**helmetjs middlewares and their role in mitigating attacks**

1. **Content Security Policy (CSP):**

You can think of the content security policy as a guest list for a bash party. On the guest list are the only people who can enter. If someone is not on the list they can not get in. 

Conversely, the csp lists where resources can come from your app, keeping out uninvited “code guests” that may cause trouble. 

This helps stop sneaky attacks like Cross-Site Scripting (XSS) where bad code is injected into your site. Helmet.js can easily set up these rules for your app, making sure only trusted sources can be used

2. **X-Content-Type-Options:**

At times browsers try to guess the kind of content on a page. This guessing can be exploited by hackers. Helmetjs protects against attacks that may come as a result of this by telling the browser not to guess the content type.

3. **Strict-Transport-Security:**

Attacks like protocol downgrades and cookie hijacking are mitigated by HTTP strict transport policy or hsts in short. This web security policy ensures browsers do not use insecure HTTP.

It's like always taking the secure roads and streets to your home and sticking to that path come rain or sunshine. Helmet js makes sure the most unsafe paths for data travel are never used.

4. **X-Frame-Options:**

It is so easy for an attacker to put your page HTML documents inside a <frame>, which results in clickjacking attacks. Clickjacking is a way of tricking users into with pages that are different from what the users think they are. 

By iframing attackers can put different layers over your web pages and buttons that you can't see are used to run bad scripts. Imagine your website as a painting. Someone can hide your painting inside a bigger frame and display it without your permission.  

Helmet.js sets a rule that says, "Don't let anyone put my website in a hidden frame," to prevent these tricks.

5. **Referrer-Policy:**

Protecting against data leakage. Clicking links on websites results in data about where you came from being sent out. Helmet.js sets rules to limit how much info about where you were before coming to a page is shared. 

It's like when you recommend a book to a friend but don't want to give away the entire plot. You share just enough for them to get interested but not so much that it spoils the story. 

Referrer-Policy controls how much information about where you've been before visiting a page is shared, protecting your browsing history like a well-kept secret.

**Conclusion**

Helmet.js is like a superhero for websites, making them safer from bad guys on the internet. It automatically locks doors and windows to stop hackers from sneaking in, protecting against tricks like putting your site in a hidden frame or adding harmful code. 

By doing this, Helmet.js keeps your website safe and secure, so you can focus on making it awesome without worrying about cyber troublemakers.