请求编写网站全页面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
相关产品推荐
相关产品推荐

