时间:2021-05-28
https可以彻底解决劫持的问题。但是一般虚拟主机都不支持 https,难道http只能任流氓们恶意劫持么?
既然只有第一次访问时才会出现抽奖链接,通过JS在浏览器中检测,如果发现 被植入的 代码,则自动刷新网页,就可以解决被劫持的问题了。
现在要做的就是得到 被植入的代码。找了一圈,没有找到检查的工具。网站传输到客户的浏览器,需要三个步骤:【1】服务器 -> 【2】运行商 -> 【3】客户浏览器。
劫持出现在第【2】步,因为离开了服务器,已经不受控制了。但是第【3】部的浏览器可以通过JS来控制。通过 Ajax 上传 客户最终获取到的代码,就可以对进行分析了。
运行效果如下:
<?php //根据访问域名,创建不同的目录 $log_path = $_SERVER['SERVER_NAME']; if( !is_dir($log_path) ){ mkdir($log_path); } //根据访客IP,分别记录 $log_path .= '/' . $_SERVER['REMOTE_ADDR']; if( !is_dir($log_path) ){ mkdir($log_path); } //按天分组 $log_path .= '/' . date('Y-m-d', time()); if( !is_dir($log_path) ){ mkdir($log_path); } //根据时间生成文件名 $log_file = $log_path . '/' . date('His', time()) . '_' . rand() . '.html'; //保存日志 $html = ''; $html .= 'URL:/' . post('url') . '<hr>'; $html .= 'HEAD:<br><textarea cols="200" rows="40">' . post('head') . '</textarea><hr>'; $html .= 'BODY:<br><textarea cols="200" rows="40">' . post('body') . '</textarea>'; file_put_contents($log_file, $html); die('{"help":"http://www.miaoqiyuan.cn/p/browser-page-tracert/","log_file":"' . $log_file . '"}'); //调用的函数 function post($input){ $post_str = isset($_POST[$input]) ? $_POST[$input] : ''; $post_str = str_replace('\\', '', $post_str); $post_str = iconv_substr($post_str, 0, 50000); //防止恶意上传假日志 return $post_str; }?>调用很简单,比如将 上边的php代码保存到了 /log/page_tracert.php,然后在整站页面中都加入 以下的代码,就可以获取到 所有的访问记录了。根据访问记录,得到 被植入的代码后,就可以进行检测脚本的开发了。
$(function(){ $.post('/log/page_tracert.php',{ url : location.href, head : $('head').html(), body : $('body').html(), },function(){});});注意:得到数据后,一定要尽快删除 测试代码。因为他会产生大量的日志,产生虚拟主机双倍的流量消耗。
总结
以上所述是小编给大家介绍的Ajax 实现网站劫持的检测方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
PR查询、PR劫持检测的作用在于查询网址的PR值,同时能检测该网址PR的真假,检测该网站的PR是否为劫持的。识破PR欺骗。PR查询、PR劫持检测的方法是什么呢,
本文实例讲述了PHP+Ajax实时自动检测是否联网的方法。分享给大家供大家参考。具体实现方法如下:html部分代码:
本文实例讲述了PHP+Ajax实时自动检测是否联网的方法。分享给大家供大家参考。具体实现方法如下:html部分代码:
适合人群:Ajax和jQuery入门采用Ajax实现用户名验证使用jQuery给出提示信息用户注册的时候,使用Ajax实现检测用户名是否已经被注册过,很多细节没
本文实例讲述了ci检测是ajax还是页面post提交数据的方法。分享给大家供大家参考。具体实现方法如下:一、问题:因为项目需要我们希望知道提交数据来源是由aja