首頁 > web前端 > js教程 > Nosecone:用於在 Next.js、SvelteKit、Node.js、Bun 和 Deno 中設定安全標頭的函式庫

Nosecone:用於在 Next.js、SvelteKit、Node.js、Bun 和 Deno 中設定安全標頭的函式庫

Susan Sarandon
發布: 2024-12-17 22:44:15
原創
350 人瀏覽過

Nosecone: a library for setting security headers in Next.js, SvelteKit, Node.js, Bun, and Deno

我們很高興地宣布Nosecone,這是一個開源庫,旨在為使用以下內容構建的應用程式直接設置安全標頭(例如內容安全策略(CSP) 和HTTP 嚴格傳輸安全(HSTS)) Next.js、SvelteKit 和其他使用Bun、Deno 或Node.js 的JavaScript 框架。

雖然您始終可以手動設定標頭,但當您需要特定於環境的配置、內聯腳本或樣式的動態隨機數,或者有許多需要自訂配置的變體時,複雜性就會增加。

無論您是要適應 2025 年生效的 PCI DSS 4.0 更嚴格的安全標頭要求,還是只是希望增強應用程式的安全性,Nosecone 都可以提供:

  • 具有實用預設值的型別安全 API。
  • Next.js 的中間件適配器。
  • SvelteKit 的配置掛鉤。
  • 與 Bun、Deno 和 Node.js 中的 Web 伺服器輕鬆整合。

您可以將 Nosecone 作為獨立庫使用,或與 Arcjet 安全即程式碼 SDK 一起使用,以進一步增強應用程式對攻擊、機器人和垃圾郵件的防禦能力。

閱讀我們的快速入門指南並查看GitHub 上的源代碼

安全標頭

Nosecone 提供了通用的 JS API、Next.js 的中間件適配器以及 SvelteKit 的配置掛鉤來設定合理的預設值。您可以在本地測試它們並輕鬆調整配置作為程式碼。

Nosecone 是開源的,支援以下安全標頭:

  • 內容安全策略 (CSP)
  • 跨源嵌入器策略 (COEP)
  • 跨源開啟者政策
  • 跨源資源策略
  • 起源-代理-群集
  • 推薦人政策
  • 嚴格傳輸安全 (HSTS)
  • X-內容類型-選項
  • X-DNS-預取-控制
  • X-下載選項
  • X 框架選項
  • X 允許的跨域策略
  • X-XSS-保護

預設值如下圖所示:

HTTP/1.1 200 OK
content-security-policy: base-uri 'none'; child-src 'none'; connect-src 'self'; default-src 'self'; font-src 'self'; form-action 'self'; frame-ancestors 'none'; frame-src 'none'; img-src 'self' blob: data:; manifest-src 'self'; media-src 'self'; object-src 'none'; script-src 'self'; style-src 'self'; worker-src 'self'; upgrade-insecure-requests;
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
referrer-policy: no-referrer
strict-transport-security: max-age=31536000; includeSubDomains
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-download-options: noopen
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-xss-protection: 0
Content-Type: text/plain
Date: Wed, 27 Nov 2024 21:05:50 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked
登入後複製
登入後複製

設定 Next.js 安全標頭

Nosecone 提供了一個 Next.js 中間件適配器來設定預設標頭。

使用 npm i @nosecone/next 安裝,然後設定此 middleware.ts 檔案。有關詳細信息,請參閱文件

import { createMiddleware } from "@nosecone/next";

// Remove your middleware matcher so Nosecone runs on every route.

export default createMiddleware();
登入後複製
登入後複製

設定 SvelteKit 安全標頭

Nosecone 提供了一個 CSP 配置和一個鉤子來設定 SvelteKit 中的預設安全標頭。

使用 npm i @nosecone/sveltekit 安裝,然後設定此 svelte.config.js 檔案。有關詳細信息,請參閱文件

import adapter from "@sveltejs/adapter-auto";
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
import { csp } from "@nosecone/sveltekit"

/** @type {import('@sveltejs/kit').Config} */
const config = {
  preprocess: vitePreprocess(),

  kit: {
    // Apply CSP with Nosecone defaults
    csp: csp(),
    adapter: adapter(),
  },
};

export default config;
登入後複製
登入後複製

在 SvelteKit 設定上設定 CSP 後,您可以將其他安全標頭設定為 src/hooks.server.ts 中的掛鉤

HTTP/1.1 200 OK
content-security-policy: base-uri 'none'; child-src 'none'; connect-src 'self'; default-src 'self'; font-src 'self'; form-action 'self'; frame-ancestors 'none'; frame-src 'none'; img-src 'self' blob: data:; manifest-src 'self'; media-src 'self'; object-src 'none'; script-src 'self'; style-src 'self'; worker-src 'self'; upgrade-insecure-requests;
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
referrer-policy: no-referrer
strict-transport-security: max-age=31536000; includeSubDomains
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-download-options: noopen
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-xss-protection: 0
Content-Type: text/plain
Date: Wed, 27 Nov 2024 21:05:50 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked
登入後複製
登入後複製

設定 Bun 安全標頭

Nosecone 可以連線到您的 Bun Web 伺服器以直接設定安全回應標頭。

使用bun add nosecone進行安裝,然後將其新增至您的伺服器。有關詳細信息,請參閱文件

import { createMiddleware } from "@nosecone/next";

// Remove your middleware matcher so Nosecone runs on every route.

export default createMiddleware();
登入後複製
登入後複製

設定 Deno 安全標頭

Nosecone 與 Denoserve 一起設定安全標頭。安裝 eno add npm:nosecone 並將其新增至您的伺服器。有關詳細信息,請參閱文件

import adapter from "@sveltejs/adapter-auto";
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
import { csp } from "@nosecone/sveltekit"

/** @type {import('@sveltejs/kit').Config} */
const config = {
  preprocess: vitePreprocess(),

  kit: {
    // Apply CSP with Nosecone defaults
    csp: csp(),
    adapter: adapter(),
  },
};

export default config;
登入後複製
登入後複製

設定 Node.js 安全標頭

Nosecone 也可以與Node.js 應用程式一起使用,但如果您使用Express.js(單獨或與Remix 一起使用),那麼我們建議使用Helmet,它為我們在Nosecone 上的工作提供了很多資訊。

使用 npm i nosecone 安裝,然後在 Node.js 伺服器上進行設定。有關詳細信息,請參閱文件

import { createHook } from "@nosecone/sveltekit";
import { sequence } from "@sveltejs/kit/hooks";

export const handle = sequence(createHook());
登入後複製

貢獻

Nosecone 是開源的,因此請隨時提交問題以進行任何改進或更改。如果您需要協助,我們也可以使用 Discord!

以上是Nosecone:用於在 Next.js、SvelteKit、Node.js、Bun 和 Deno 中設定安全標頭的函式庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板