究人员在QQ手机浏览器受到攻击后发现了一种新型滥用基于HTML5 Ping的超链接审计特性的DDoS攻击。
Imperva研究人员Vitaly Simonovich和Dima Bekerman监测到一次攻击,该攻击最高点达7,500个请求/秒,并在4个小时内从约4,000个用户IP发出了超过7千万个请求。什么概念呢?2016年类似的一次基于Android的手机DDoS攻击是从27,000个独特IP中实现了每秒400个请求的峰值。
新攻击使用的是HTML5 ping属性,其可以合法跟踪网站链接上的点击次数,一些隐私人士甚至将其视为一种用户跟踪形式。'Ping ='包含在普通的在线超链接代码中。单击链接时,会发送一个不可见的'ping ='url内容变量,该变量也用户看不到,网站管理员可以监控、审核从特定网站发送特定链接的访问者数量。
虽说这种新攻击主要来自QQ浏览器用户,但该技术几乎可以应用到任何浏览器上。Firefox是少数几个默认禁用ping属性的浏览器之一;Chrome 74 Beta版本正在取消禁用超链接审核功能,这意味着可能在2019年5月发布后,Chromium浏览器(如Edge,Chrome,Opera和Safari)将永久启用超链接审核。
用户访问经两个外部JavaScript文件而设计的网页,其中一个含URL的数组,这也是主要针对游戏网站DDoS攻击的目标;另外一个JS文件有一个函数,它从数组中随机选择一个URL,创建带有'ping'属性的<a>标签,并以编程方式每秒点击该链接。访问者只要在浏览器中打开该网站,超链接审核ping就会向其发送,4,000多名用户深陷其中、每小时最多可能超1400万个请求。这种攻击需要让用户访问精心设计的网页,并尽可能长时间地在浏览器中打开。
研究人员提出一种可能的结合社会工程和恶意广告场景,也许已经在这次攻击中使用:攻击者将恶意广告注入合法网站。网站越受欢迎,受DDoS的可能性就越大。之后,具有恶意添加的网站链接会被发布到大型微信群里。然后,访问者和来自微信聊天组的访问者将自动、不知不觉地开始ping目标URL,且将继续以每秒一次的速率执行此操作,以便在浏览器中打开中毒选项卡。
虽然这种攻击方法有可能在任何地方用于对抗任何目标,但一个简单的防御方法是阻止任何包含边缘设备上的”Ping-To“和/或”Ping-From“HTTP header的Web请求”(防火墙,WAF等),这会阻止ping请求不会命中你的服务器。
本文作者:Gump,转载自:http://www.mottoin.com/detail/3892.html
avaScript 中实现自动检测用户是否使用移动设备,并据此跳转到对应的手机移动网页,通常可以通过检查 navigator.userAgent 属性来识别用户代理字符串中包含的设备信息。以下是一个简单的示例,展示如何基于用户使用的浏览器类型进行判断并跳转:
if (/(mobile|android|iphone|ipad|iemobile|windows phone)/i.test(navigator.userAgent)) {
// 如果是移动设备,则跳转到移动版网站
window.location.href = "http://m.example.com"; // 替换为你的移动版网站地址
}
这段代码会检测 navigator.userAgent 中是否存在典型的移动设备标识符,如果存在,则认为用户正在使用移动设备,并将页面重定向到指定的移动版网址。
然而,这种方法并不完全可靠,因为用户代理字符串是可以被伪造的,并且随着现代浏览器的发展,响应式设计已经更为推荐,可以根据屏幕尺寸而不是设备类型来优化网站布局。
另外,也可以使用更现代的方法如 navigator.maxTouchPoints 或者媒体查询 (window.matchMedia) 来辅助判断:
// 检查触控点数量以大致推测是否为移动设备
if (navigator.maxTouchPoints > 0 && screen.width < 768) {
window.location.href = "http://m.example.com";
}
// 或者使用媒体查询结合CSS和JS
if (window.matchMedia("(max-width: 767px)").matches) {
window.location.href = "http://m.example.com";
}
对于复杂的设备检测和更好的兼容性,可以考虑使用一些专门的库,比如过去提到的 Device.js,但请注意这个库可能需要更新以支持最新的设备类型和浏览器特性。现在更多的实践倾向于采用响应式设计而非硬编码跳转,除非有特殊需求。
在JavaScript中,如果你想根据用户的设备(如手机或桌面设备)自动跳转到不同的网页,你可以使用window.location对象来改变当前页面的URL。同时,你可以结合navigator.userAgent字符串来判断用户设备的类型。
下面是一个简单的示例代码,演示如何根据用户设备类型自动跳转到不同的网页:
javascript复制代码
window.onload = function() {
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
// 检查userAgent字符串中是否包含特定的手机标识
var isMobile = /Mobile|iPhone|iPad|iPod|Android/i.test(userAgent);
if (isMobile) {
// 如果是移动设备,跳转到移动版网页
window.location.href = 'https://mobile.example.com';
} else {
// 如果是桌面设备,跳转到桌面版网页
window.location.href = 'https://www.example.com';
}
};
这段代码首先会检查userAgent字符串,看看是否包含任何移动设备的关键字。如果找到关键字,就认为用户正在使用移动设备,并自动跳转到移动版网页。否则,就认为用户正在使用桌面设备,并自动跳转到桌面版网页。
请注意,这种方法并不是100%准确的,因为用户代理字符串可以被用户或某些软件篡改。但是,对于大多数情况来说,这种方法是足够有效的。
另外,现代的网站设计通常使用响应式设计(Responsive Design)来适应不同大小的设备和屏幕,而不是简单地根据设备类型进行重定向。响应式设计可以让你的网站在各种设备上都有良好的用户体验。
断是苹果手机还是安卓手机,判断是什么浏览器输入网页效果
实现javascript:
*请认真填写需求信息,我们会在24小时内与您取得联系。