一个 Swift 库,用于定义 内容安全策略 (CSP) 标头值。
将 ContentSecurityPolicy 包添加到您的目标依赖项中的 Package.swift
文件中
import PackageDescription
let package = Package(
name: "YourProject",
dependencies: [
.package(
url: "https://github.com/ReadEval/ContentSecurityPolicy",
from: "0.0.1"
),
]
)
然后运行 swift build
命令来构建您的项目。
要在您的 Xcode 项目中使用 Carthage 中的 ContentSecurityPolicy,请在 Cartfile
中指定它
github "ReadEval/ContentSecurityPolicy" ~> 0.0.1
然后运行 carthage update
命令来构建框架,并将构建的 ContentSecurityPolicy.framework 拖到您的 Xcode 项目中。
使用指定的初始化器创建一个 ContentSecurityPolicy
对象;每个参数都有默认值,因此您可以仅指定与您的用例相关的指令
import ContentSecurityPolicy
let csp = ContentSecurityPolicy(
defaultSrc: [.`self`],
baseURI: URL(string: "https://readeval.press")!,
upgradeInsecureRequests: true
)
csp.policy
// default-src: 'self'; base-uri: https://readeval.press; upgrade-insecure-requests
您可以使用计算的 policy
属性值在 HTTP 响应头中设置 "Content-Security-Policy"
标头。以下是如何使用 Vapor 执行此操作的方法
import Vapor
let response = response ...
response.headers["Content-Security-Policy"] = csp.policy
MIT
Read Evaluate Press, LLC (@ReadEvalPress)