You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写网站全页面Cookie扫描脚本并存储至phpMyAdmin

实现方案

前端JS脚本(获取Cookie并传递给PHP)

前端JS受浏览器同源策略限制,只能获取当前域名下的Cookie。如果要扫描网站所有页面,你需要让脚本在每个页面加载时执行(比如嵌入到网站全局代码中,或通过浏览器扩展注入)。

以下是获取当前页面Cookie名称并发送到PHP的代码:

// 提取所有Cookie名称
function getCookieNames() {
  const cookies = document.cookie.split(';');
  const cookieNames = [];
  cookies.forEach(cookie => {
    const trimmedCookie = cookie.trim();
    if (trimmedCookie) {
      const name = trimmedCookie.split('=')[0];
      cookieNames.push(name);
    }
  });
  return cookieNames;
}

// 发送Cookie名称到后端PHP
async function sendCookiesToPHP() {
  const cookieNames = getCookieNames();
  try {
    await fetch('save-cookies.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ cookieNames: cookieNames }),
    });
    console.log('Cookie名称已发送到后端');
  } catch (error) {
    console.error('发送失败:', error);
  }
}

// 执行函数
sendCookiesToPHP();

后端PHP代码(存储到phpMyAdmin对应的MySQL数据库)

创建save-cookies.php文件,负责接收前端数据并写入数据库:

<?php
// 数据库配置
$host = 'localhost';
$dbname = 'your_database_name';
$username = 'your_db_username';
$password = 'your_db_password';

// 接收前端数据
$data = json_decode(file_get_contents('php://input'), true);
$cookieNames = $data['cookieNames'] ?? [];

if (!empty($cookieNames)) {
  try {
    // 连接数据库
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 预处理语句防SQL注入
    $stmt = $pdo->prepare("INSERT INTO cookies (name) VALUES (:name) ON DUPLICATE KEY UPDATE name = name");
    
    // 遍历插入每个Cookie名称
    foreach ($cookieNames as $name) {
      $stmt->bindParam(':name', $name);
      $stmt->execute();
    }

    echo 'Cookie名称已成功存储';
  } catch(PDOException $e) {
    echo '存储失败: ' . $e->getMessage();
  }
} else {
  echo '没有接收到Cookie名称';
}
?>

关键注意事项

  • 同源策略限制:普通前端JS无法跨域获取Cookie,若要扫描全站页面,需将脚本嵌入网站全局代码,或开发浏览器扩展利用扩展权限实现跨页面访问。
  • 数据库表准备:先在phpMyAdmin中创建cookies表,示例SQL:
CREATE TABLE cookies (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL UNIQUE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  • 安全防护:给数据库账号分配最小权限,用预处理语句避免SQL注入,可添加请求来源验证防止恶意提交。

内容的提问来源于stack exchange,提问作者JaymesPayten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:24:10