首页 web前端 js教程 Nosecone:用于在 Next.js、SvelteKit、Node.js、Bun 和 Deno 中设置安全标头的库

Nosecone:用于在 Next.js、SvelteKit、Node.js、Bun 和 Deno 中设置安全标头的库

Dec 17, 2024 pm 10:44 PM

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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

两个点博物馆:邦格荒地地点指南
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门工具标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在JavaScript中替换字符串字符 在JavaScript中替换字符串字符 Mar 11, 2025 am 12:07 AM

在JavaScript中替换字符串字符

jQuery检查日期是否有效 jQuery检查日期是否有效 Mar 01, 2025 am 08:51 AM

jQuery检查日期是否有效

jQuery获取元素填充/保证金 jQuery获取元素填充/保证金 Mar 01, 2025 am 08:53 AM

jQuery获取元素填充/保证金

前5个日期操纵JS插件 前5个日期操纵JS插件 Feb 28, 2025 am 12:34 AM

前5个日期操纵JS插件

10值得检查jQuery插件 10值得检查jQuery插件 Mar 01, 2025 am 01:29 AM

10值得检查jQuery插件

10个jQuery手风琴选项卡 10个jQuery手风琴选项卡 Mar 01, 2025 am 01:34 AM

10个jQuery手风琴选项卡

jQuery添加卷轴到Div jQuery添加卷轴到Div Mar 01, 2025 am 01:30 AM

jQuery添加卷轴到Div

自定义Google搜索API设置教程 自定义Google搜索API设置教程 Mar 04, 2025 am 01:06 AM

自定义Google搜索API设置教程

See all articles