Skip to content
Snippets Groups Projects
Unverified Commit 6128aa55 authored by Morten Bøgh's avatar Morten Bøgh Committed by GitHub
Browse files

[SecurityHeaders] Added a possibility for no follow redirects (#6212)


* Added a possibility for no follow redirects

* Changed from noFollowRedirects to ignoreRedirects

* Update services/security-headers/security-headers.service.js

Co-authored-by: default avatarchris48s <chris48s@users.noreply.github.com>

* correct test color

Co-authored-by: default avatarchris48s <chris48s@users.noreply.github.com>
Co-authored-by: default avatarCaleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: default avatarrepo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
parent cd3774aa
Branches
Tags
No related merge requests found
...@@ -6,6 +6,7 @@ const { BaseService, NotFound } = require('..') ...@@ -6,6 +6,7 @@ const { BaseService, NotFound } = require('..')
const queryParamSchema = Joi.object({ const queryParamSchema = Joi.object({
url: optionalUrl.required(), url: optionalUrl.required(),
ignoreRedirects: Joi.equal(''),
}).required() }).required()
const documentation = ` const documentation = `
...@@ -38,6 +39,15 @@ module.exports = class SecurityHeaders extends BaseService { ...@@ -38,6 +39,15 @@ module.exports = class SecurityHeaders extends BaseService {
}), }),
documentation, documentation,
}, },
{
title: "Security Headers (Don't follow redirects)",
namedParams: {},
queryParams: { url: 'https://www.shields.io', ignoreRedirects: null },
staticPreview: this.render({
grade: 'R',
}),
documentation,
},
] ]
static defaultBadgeData = { static defaultBadgeData = {
...@@ -53,6 +63,7 @@ module.exports = class SecurityHeaders extends BaseService { ...@@ -53,6 +63,7 @@ module.exports = class SecurityHeaders extends BaseService {
D: 'orange', D: 'orange',
E: 'orange', E: 'orange',
F: 'red', F: 'red',
R: 'blue',
} }
return { return {
...@@ -61,7 +72,7 @@ module.exports = class SecurityHeaders extends BaseService { ...@@ -61,7 +72,7 @@ module.exports = class SecurityHeaders extends BaseService {
} }
} }
async handle(namedParams, { url }) { async handle(namedParams, { url, ignoreRedirects }) {
const { res } = await this._request({ const { res } = await this._request({
url: `https://securityheaders.com`, url: `https://securityheaders.com`,
options: { options: {
...@@ -69,7 +80,7 @@ module.exports = class SecurityHeaders extends BaseService { ...@@ -69,7 +80,7 @@ module.exports = class SecurityHeaders extends BaseService {
qs: { qs: {
q: url, q: url,
hide: 'on', hide: 'on',
followRedirects: 'on', followRedirects: ignoreRedirects !== undefined ? null : 'on',
}, },
}, },
}) })
......
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
const t = (module.exports = require('../tester').createServiceTester()) const t = (module.exports = require('../tester').createServiceTester())
t.create('grade of http://shields.io') t.create('grade of https://shields.io')
.get('/security-headers.json?url=https://shields.io') .get('/security-headers.json?url=https://shields.io')
.expectBadge({ label: 'security headers', message: 'F', color: 'red' }) .expectBadge({ label: 'security headers', message: 'F', color: 'red' })
t.create('grade of https://httpstat.us/301 as redirect')
.get('/security-headers.json?ignoreRedirects&url=https://httpstat.us/301')
.expectBadge({ label: 'security headers', message: 'R', color: 'blue' })
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment