cs en cs cs id cs cs de cs cs cs cs en cs cs en cs en en en cs en en cs en en cs en cs en cs cs en cs cs en cs en en cs en en cs en en cs cs en cs en cs cs de en cs es cs cs cs cs it cs cs en cs cs cs en en sv en hbs_lat cs en cs cs cs cs cs cs eu cs cs cs cs cs cs cs cs cs cs cs nl cs cs cs cs cs pl cs cs cs cs nl en pl cs cs cs cs cs cs cs cs pl cs cs cs cs cs cs cs pl cs cs cs cs cs cs cs nl cs pl cs cs cs cs cs cs cs nl pl cs cs cs nl pl cs cs cs nl cs cs en cs en en en
Koa-helmet je Helmet wraper používaný Express.js. Zajišťuje důležité bezpečnostní http hlavičky. Vlastní koa-helmet má na GitHubu 532 hvězd a originál, který pochází z Express.js má 7 tisíc hvězd.
Helmet nabízí 14 bezpečnostních middlewaových funkcí:
Implicitně v Helmet není zahrnuto. Hlavička X-Permitted-Cross-Domain-Policies byla vytvořena pro Adobe Flash Player nebo Adobe Acrobat, ale je určena i pro jiné programy pracující se soubory flash a pdf. Pravidla pro tyto klienty jsou mezidoménově definována v souboru crossdomain.xml.
Tato záhlaví je součástí výchozího balíčku Helmet. Umožňuje zakázat předběžné načítání DNS prohlížeče nastavením DNS Prefetch Control. Většina prohlížečů podporuje vypnutí, ale DNS stejně nenačítají i v zapnutém stavu.
const helmet = require('helmet') // Nastavení "X-DNS-Prefetch-Control: off". app.use(helmet.dnsPrefetchControl())
Implicitně v Helmet není zahrnuto. Hlavička umožňuje kontrolovat dodržování souladu s Certificate Transparency (CT) u certifikátu webových stránek. Hlavním úkolem Expect-CT headeru je zajistit kontrolu shody s CT a umožnit prohlížečům odesílat reporty, pokud mají problémy s ověřením certifikátu webových stránek. Přesné nastavení najdeme zde: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect-CT
const expectCt = require('expect-ct') // Sets Expect-CT: max-age=123 app.use(expectCt({ maxAge: 123 })) // Sets Expect-CT: enforce; max-age=123 app.use(expectCt({ enforce: true, maxAge: 123 })) // Sets Expect-CT: enforce; max-age=30; report-uri="http://example.com/report" app.use(expectCt({ enforce: true, maxAge: 30, reportUri: 'http://example.com/report' }))
Implicitně v Helmet není zahrnuto. Feature-Policy hlavička umožňuje vývojářům webu povolovat, zakazovat a upravovat vlastnosti a chování některých rozhraní API a webových funkcí v prohlížeči. Tato hlavička je poměrně nová a její použití není v prohlížečích prozatím široce podporováno. Webové prohlížeče mají mnoho různých funkcí, od vibrací přes zobrazení na celou obrazovku až po přístup k mikrofonu. I když některé z nich mohou být užitečné, možná nebudete chtít používat všechny a možná nebudete chtít používat žádné skripty třetích stran, které používáte. Aktuálně podporované vlastnosti u prohlížečů najdeme zde: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Feature-Policy#Browser_compatibility
const helmet = require('helmet') app.use(helmet.featurePolicy({ features: { fullscreen: ["'self'"], vibrate: ["'none'"], payment: ['example.com'], syncXhr: ["'none'"] } }))
Hlavička ochraňuje uživatele od zneužití pomocí tzv. „clickjackingu“, kdy útočník na podvodné stránce vloží cizí stránku a nad ní umístí průhlednou vrstvu s vlastními událostmi a odkazy o kterých návštěvník netuší.
Tato záhlaví je součástí výchozího balíčku Helmet. Použití X-Frame-Options preventivně brání zneužití vlastního obsahu na cizích www stránkách. Například nechceme stránky zobrazovat na jiných webech v rámu, kde bude nevhodný obsah, reklama atd. Konkrétní nastavení hlavičky: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
const helmet = require('helmet') // je povoleno zobrazovat stránku v rámu na vlastním webu. Pokud by bylo uvedeno { action: 'deny' }, stránka nikdy nesmí být zobrazena v rámu. Pomocí ALLOW-FROM https://domena.cz může být pouze vloženo do rámu na uvedené doméně app.use(helmet.frameguard({ action: 'sameorigin' }))
Tato záhlaví je součástí výchozího balíčku Helmet.. Hlavička odstraní implicitní X-Powered-By, které útočníkům odhaluje technologie, které pohání náš web.
const helmet = require('helmet') app.use(helmet()) app.disable('x-powered-by') // možné nastavení falešné informace pro zmatení útočníka app.use(helmet.hidePoweredBy({ setTo: 'PHP 4.2.0' }))
Tato záhlaví je součástí výchozího balíčku Helmet. Vynutí u prohlížeče použít na stanovenou dobu v sekundách pro komunikaci s webem pouze protokol HTTPS.
const helmet = require('helmet') // Sets "Strict-Transport-Security: max-age=5184000; includeSubDomains". const sixtyDaysInSeconds = 5184000 app.use(helmet.hsts({ maxAge: sixtyDaysInSeconds }))
Tato záhlaví je součástí výchozího balíčku Helmet. Ve výchozím nastavení nám staré verze aplikace Internet Explorer umožňují tyto soubory HTML otevírat v kontextu vašeho webu, což znamená, že nedůvěryhodná stránka HTML by mohla v souvislosti s vašimi stránkami provádět útok.
const helmet = require('helmet') // Sets "X-Download-Options: noopen". app.use(helmet.ieNoOpen())
Tato záhlaví je součástí výchozího balíčku Helmet. Pomáhá zabránit prohlížečům ve snaze uhodnout („čichat“) typ MIME, který může mít bezpečnostní důsledky. To se provádí nastavením X-Content-Type-Optionszáhlaví na nosniff.
const helmet = require('helmet') // Sets "X-Content-Type-Options: nosniff". app.use(helmet.noSniff())
Implicitně v Helmet není zahrnuto.. Kontroluje a případně omezuje Referer hodnotu prohlížeče, která předává odkud uživatel přišel. Seznam možného omezení je zde: https://www.w3.org/TR/referrer-policy/#referrer-policies
const helmet = require('helmet') // "Referrer-Policy: same-origin" - Záhlaví referrer bude odesláno pouze na stejnou doménu (same-origin), ale na jiné domény referrer nebude obsahovat žádné informace (no-referrer). app.use(helmet.referrerPolicy({ policy: 'same-origin' }))
Skriptování napříč webem, zkráceně „XSS“, je způsob, jakým mohou útočníci převzít webové stránky. Cílem útoku XSS je získat kontrolu nad JavaScriptem v prohlížeči oběti. Jakmile to hacker udělá, je tu spousta ošklivých věcí, které mohou udělat: přihlásit své akce, vydávat se za vás, ukrást vaše ověřovací soubory cookie a mnohem více. Helmet XSS je relativně jednoduchý middleware, který nastaví X-XSS-Protection. Ve většině prohlížečů to nastaví na 1; mode=block. U starých verzí aplikace Internet Explorer ji nastaví tak, aby 0ji deaktivovala, protože u IE to může způsobit další škody.
const helmet = require('helmet') // Nastaví "X-XSS-Protection: 1; mode=block". app.use(helmet.xssFilter())