我們很高興地宣布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中文網其他相關文章!

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器