Oh MyUtils

HTTP头部分析器 - 安全头部解析与审计 在线工具

解析和审计HTTP头部的安全漏洞、缓存行为和CORS配置。获取带有可操作建议的安全评分 — 100%客户端处理,无数据发送到服务器。

100%客户端处理 — 无数据发送到任何服务器
头部类型
原始头部

常见问题

什么是HTTP头部分析器?它有什么作用?

HTTP头部分析器是一个工具,用于解析原始HTTP头部(请求和响应),并为每个头部提供人类可读的解释。它按功能对头部进行分类(安全、缓存、CORS、内容等),执行安全审计以检查关键安全头部的存在和正确性,并生成安全评分。

如何使用此工具?

1. 从浏览器DevTools(网络标签页)、curl -v输出或服务器日志中复制HTTP头部。2. 将原始头部粘贴到文本区域中。3. 选择请求头部或响应头部。4. 在解析结果标签页中查看结果。5. 切换到安全审计查看安全评分。

我的数据安全吗?会发送到服务器吗?

绝对安全。此工具使用客户端JavaScript在浏览器中100%运行。没有任何数据会传输到任何服务器。所有解析和分析都在浏览器中本地进行。

每个网站应该有哪些安全头部?

每个网站应实施以下关键安全头部:(1) 强制HTTPS的Strict-Transport-Security (HSTS)。(2) 防止XSS的Content-Security-Policy (CSP)。(3) X-Content-Type-Options: nosniff。(4) 防止点击劫持的X-Frame-Options: DENY。(5) Referrer-Policy。(6) Permissions-Policy。

什么是Content-Security-Policy (CSP)?

Content-Security-Policy是一个HTTP响应头部,告诉浏览器页面允许加载哪些内容来源。它是防御跨站脚本(XSS)攻击最强大的手段之一。CSP使用default-src、script-src、style-src等指令来限制允许的来源。

安全评分是如何计算的?

安全评分是基于关键安全头部的存在和配置质量的0-100数值评级。分数分配:HSTS(15分)、CSP(20分)、X-Frame-Options(10分)、X-Content-Type-Options(10分)、Referrer-Policy(10分)、Permissions-Policy(10分)、COOP(5分)、CORP(5分)、COEP(5分)、无版本泄露头部(10分)。等级:A+(95-100)到F(0-39)。

请求头部和响应头部有什么区别?

请求头部由客户端(浏览器)发送到服务器,包括User-Agent、Accept、Authorization、Cookie等信息。响应头部由服务器发送到客户端,包括Content-Type、Cache-Control、安全头部、Set-Cookie和CORS头部。安全审计主要应用于响应头部。

代码示例

// HTTP Header Parser and Security Analyzer

function parseHttpHeaders(rawHeaders) {
  const headers = [];
  for (const line of rawHeaders.split('\n')) {
    let cleaned = line.trim();
    if (!cleaned) continue;
    if (/^HTTP\/[\d.]+\s+\d+/.test(cleaned)) continue;
    if (/^(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\s+/.test(cleaned)) continue;
    cleaned = cleaned.replace(/^[<>]\s*/, '');
    if (!cleaned) continue;
    const i = cleaned.indexOf(':');
    if (i === -1) continue;
    const name = cleaned.substring(0, i).trim();
    const value = cleaned.substring(i + 1).trim();
    if (name) headers.push({ name, value });
  }
  return headers;
}

const SECURITY_CHECKS = [
  { header: 'strict-transport-security', label: 'HSTS', weight: 15 },
  { header: 'content-security-policy', label: 'CSP', weight: 20 },
  { header: 'x-frame-options', label: 'X-Frame-Options', weight: 10 },
  { header: 'x-content-type-options', label: 'X-Content-Type-Options', weight: 10 },
  { header: 'referrer-policy', label: 'Referrer-Policy', weight: 10 },
  { header: 'permissions-policy', label: 'Permissions-Policy', weight: 10 },
];

function auditSecurity(headers) {
  const map = new Map(headers.map(h => [h.name.toLowerCase(), h.value]));
  let score = 0;
  const results = [];
  for (const check of SECURITY_CHECKS) {
    const value = map.get(check.header);
    if (value) {
      score += check.weight;
      results.push({ header: check.label, status: 'pass', value });
    } else {
      results.push({ header: check.label, status: 'fail', value: null });
    }
  }
  // Check info leakage
  if (!['server', 'x-powered-by'].some(h => map.has(h))) score += 10;
  const grade = score >= 95 ? 'A+' : score >= 85 ? 'A' :
    score >= 75 ? 'B' : score >= 60 ? 'C' : score >= 40 ? 'D' : 'F';
  return { score, grade, results };
}

// Example usage
const raw = `Content-Type: text/html\nStrict-Transport-Security: max-age=31536000\nX-Frame-Options: DENY\nX-Content-Type-Options: nosniff`;
const parsed = parseHttpHeaders(raw);
const audit = auditSecurity(parsed);
console.log(`Score: ${audit.score}/100 (${audit.grade})`);

相关工具