JS读取Cookies隐藏友情链接的机制与防范
本文分析一种利用JavaScript读取Cookies来隐藏友情链接的技术。攻击者通过PHP写入Cookie,前端JS动态生成链接,导致页面源码中不直接显示链接。这种方法常用于SEO作弊,提醒站长在添加外链时需检查源文件而非仅看页面显示。
JS读取Cookies隐藏友情链接的机制与防范
您好,我们已将 http://www.114desk.com 添加为友情链接,
该网页底部的链接指向贵站。
http://www.bole18.com/link.php?result=%0A%0D%3D%3DQbvNmLrNXZkRTMx4yd3d3LvoDc0RHag1r1aHr5DD81dc
本站 GOOGLE PR 值为 4,若需交换链接,请使用以下代码,感谢配合。
<a href="铂金钻戒网">http://www.bole18.com</a>
访问该网址后,首页自动跳转至 index.html,在此页面未找到友情链接,遂关闭页面。随后点击其提供的长链接,发现友情链接列表底部出现了 biyan.org 的链接,这是为何?此前查看时并未显示。
单独访问该长链接地址,确实存在我的链接。
检查源代码发现,最后一个链接使用了以下代码段:
引用
<script language="javascript">document.write(showc("result"));</script>
点击 QQ 邮箱中的链接地址,将参数传递至此处,从而显示目标网站。该 showc 函数的 JavaScript 实现颇具匠心。
特此曝光此站,并提醒各位在交换链接时,不应仅依赖页面显示,建议查看源文件并搜索网址以确认:)
其实现原理是通过 PHP 写入 cookies,随后由客户端 JavaScript 读取 cookies 中的链接。
客户端代码:
代码如下:
<SCRIPT language=javascript>
function createc(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+escape(value)+expires+"; path=/";
}
function readc(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
}
return null;
}
function showc(name) {
value = readc(name);
if ((value == null) || (value == "null")) return "";
return value;
}
function addc(name,value,days) {
if (readc(name) != null) {
var oldvalue = readc(name);
var newvalue = oldvalue+","+value;
}
else var newvalue = value;
createc(name,newvalue,days);
}
</SCRIPT>JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
JavaScript新手常犯的编码错误与最佳实践指南
2026-11-04 22:12:38
