Javascript 阻止恶意转介网站

Javascript 阻止恶意转介网站,javascript,security,.htaccess,web-traffic,Javascript,Security,.htaccess,Web Traffic,我的网站从带有恶意javascript的网站获得了大量流量(见下文) 我不完全理解其目的,但我认为其目的是利用我网站的高流量,操纵他们自己的流量统计数据 我尝试用.htaccess阻止推荐URL(它们是伪造的blogspot站点),但没有成功。有没有其他方法可以让我摆脱垃圾车?我的网站运行在一个专用服务器上,所以如果有什么我可以做的超越.htaccess(如这里所建议的),请让我知道 这是恶意代码: <script type="text/javascript"> var sLocat

我的网站从带有恶意javascript的网站获得了大量流量(见下文)

我不完全理解其目的,但我认为其目的是利用我网站的高流量,操纵他们自己的流量统计数据

我尝试用.htaccess阻止推荐URL(它们是伪造的blogspot站点),但没有成功。有没有其他方法可以让我摆脱垃圾车?我的网站运行在一个专用服务器上,所以如果有什么我可以做的超越.htaccess(如这里所建议的),请让我知道

这是恶意代码:

<script type="text/javascript">
var sLocation = document.referrer.toLocaleLowerCase();
//Links to boost
var rDomains = ["http://site.com/"];
//Allowed domain referrer
var aDomains = [".com"];
var valid = 0;

//Valid referrer
for (i=0;i<aDomains.length;i++) {
//Check referrer
if (sLocation.indexOf(aDomains[i], 0) > -1) 
{
valid = 1;
break;
}
}

//Valid referrer
if (valid == 1) 
{
//Loop
for (i=0;i<rDomains.length;i++) {
//alert(rDomains[i]);
invisibleWindow("mydiv" + i,rDomains[i]);
}
}

function invisibleWindow(iframeID, url) {
divel = document.createElement("div");
divel.id = "div" + iframeID;
divel.style.width = "5px"; 
divel.style.height = "5px";
divel.style.visibility = "hidden";

//Add div
document.body.appendChild(divel);

domiframe = document.createElement("iframe");
domiframe.id = iframeID; 
domiframe.src = url;
domiframe.style.width = "5px"; 
domiframe.style.height = "5px";
domiframe.style.visibility = "hidden";

var divid = document.getElementById("div" + iframeID);
divid.appendChild(domiframe);
}

</script>

var sLocation=document.referer.toLocaleLowerCase();
//链接,以促进
变量rDomains=[”http://site.com/"];
//允许的域引用者
var aDomains=[“.com”];
var valid=0;
//有效推荐人

对于(i=0;i

如果您知道这些试图攻击的来源(您似乎知道),您可以通过简单地引导来自该引用url的流量来阻止访问

然而,使用JavaScript进行此操作并不特别可靠,因为他们可以简单地关闭JavaScript,或者从他们自己的url(无参考url)攻击您的站点

用服务器端语言这样做会更可靠一些,特别是当您可以收集有问题的ip地址并基于该地址而不是引用URL进行阻止时,我必须说我不太相信这是一种解决方案。 更好的做法是使用前面提到的防火墙并完全阻止对服务器的访问

在PHP中,如果我的内存可用,您将使用$\u SERVER['HTTP\u referer']作为referer url,使用$\u SERVER['REMOTE\u ADDR']作为IP地址。代码本身非常类似:

$block = ['url1', 'url2'];
foreach ($block as $value) {
    if ($_SERVER['HTTP_REFERRER'] == $value)
        header('Location: http://google.com/');
}

您可能会使用==(不信任===因为它是来自dom节点的值)这是漫长的一天,无论出于何种原因,match首先出现在我的脑海中。

我确信其目的远比操纵他们的流量更邪恶。我确信某个地方有一个iframe,他们正在做一些事情,比如在你的网站上记录击键来窃取密码,并将其发送回他们的网站服务器通过ajax或其他xss或xsrf攻击。没有人会简单地以任何人为目标来夸大点击率。除了夸大广告收入,没有ROI,也没有逻辑上的动机。我希望你能弄清楚。如果你知道ip地址并能访问防火墙,最好的方法是在防火墙级别阻止它们。具体取决于你的情况get,一个好的Web应用程序防火墙(不同于标准防火墙)这是一个好主意。也可以试试security.stackexchqnge.com。我不知道IP地址,但我知道包含恶意代码的网站的URL。我不确定IP地址是否相关。我不想阻止访问者,因为访问者只是引用网站的受害者。我同意@DavidStratton。他们不太可能这么做取消此操作以尝试提高他们的点击率。您应该在从这些推荐网站收到最多流量的页面的响应中添加标题“X-Frame-Options:SAMEORIGIN”。这将阻止嵌入iframe中,并可能实际上有助于减少此流量。帮助保护您的用户:)
$block = ['url1', 'url2'];
foreach ($block as $value) {
    if ($_SERVER['HTTP_REFERRER'] == $value)
        header('Location: http://google.com/');
}