用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/CyberStrikeus/CyberStrike --skill cis-nginx-v300-5-3-2命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | cis-nginx-v300-5-3-2 |
| description | Ensure that Content Security Policy (CSP) is enabled and configured properly (Manual) |
| category | cis-nginx |
| version | 3.0 |
| author | cyberstrike-official |
| tags | ["cis","nginx","web-server","reverse-proxy","browser-security","request-filtering"] |
| cis_id | 5.3.2 |
| cis_benchmark | CIS NGINX Benchmark v3.0.0 |
| tech_stack | ["nginx","linux","web-server"] |
| cwe_ids | [] |
| chains_with | [] |
| prerequisites | [] |
| severity_boost | {} |
Content Security Policy (CSP) is an HTTP response header that allows site administrators to declare approved sources of content that browsers are allowed to load on that page. It is a mechanism to detect and mitigate certain types of attacks, including Cross-Site Scripting (XSS) and data injection attacks. Furthermore, CSP's frame-ancestors directive is the modern replacement for the X-Frame-Options header to prevent Clickjacking.
A robust CSP significantly reduces the attack surface of a web application. By restricting the domains from which scripts, styles, images, and other resources can be loaded, it effectively neutralizes many XSS vectors. Additionally, by using the frame-ancestors directive, it explicitly controls which parent pages are allowed to embed the application (e.g., via <iframe>), providing a more flexible protection against Clickjacking than the legacy X-Frame-Options header.
Implementing a strict CSP is complex and carries a high risk of breaking application functionality. If a legitimate resource (e.g., a CDN script, a font file, or an inline script) is not whitelisted, the browser will block it, potentially making the site unusable. CSP implementation should always start in "Report-Only" mode (Content-Security-Policy-Report-Only) to gather violation reports before enforcing the policy.
1. Run the following command to inspect the CSP configuration:
nginx -T 2>/dev/null | grep -i 'Content-Security-Policy'
2. Evaluate the policy:
default-src directive (e.g., 'self' or 'none')?frame-ancestors directive to mitigate Clickjacking?unsafe-inline or unsafe-eval avoided in script-src? (Allowing these significantly weakens the protection).CSP must be tailored to the specific application. There is no single "correct" policy.
Step 1: The Baseline Policy (High Security)
Start with a policy that denies everything by default and only allows resources from the same origin. It also prevents the site from being framed by anyone (Clickjacking protection).
add_header Content-Security-Policy "default-src 'self'; frame-ancestors 'self'; form-action 'self';" always;
Step 2: Adaptation (Example)
If your application loads images from a CDN and needs to be embeddable by a specific partner site:
add_header Content-Security-Policy "default-src 'self'; img-src 'self' https://cdn.example.com; frame-ancestors 'self' https://partner-site.com;" always;
Note: Use Content-Security-Policy-Report-Only during the testing phase to debug your policy without breaking the site.
By default, no Content Security Policy is sent. Browsers default to the standard Same-Origin Policy, which is much less restrictive.
OWASP HTTP Headers Cheat Sheet states:
Content Security Policy (CSP) frame-ancestors directive obsoletes X-Frame-Options for supporting browsers (source).
X-Frame-Options header is only useful when the HTTP response where it is included has something to interact with (e.g. links, buttons). If the HTTP response is a redirect or an API returning JSON data, X-Frame-Options does not provide any security.
Recommendation: Use Content Security Policy (CSP) frame-ancestors directive if possible.
Almost all modern browsers do support CSP. A comprehensive overview of compatible browsers can be found here: https://caniuse.com/?search=frame-ancestors
| Controls Version | Control | IG 1 | IG 2 | IG 3 |
|---|---|---|---|---|
| v8 | 2.7 Allowlist Authorized Scripts | N | N | Y |
| v7 | 2.9 Implement Application Whitelisting of Scripts | N | N | Y |
| Tactic | Technique |
|---|---|
| Initial Access | T1189 - Drive-by Compromise |
| Execution | T1059.007 - JavaScript |