zoukankan      html  css  js  c++  java
  • 网站被跳转到联通域名无法访问页面

    早上,访问网站正文页面的时候,页面加载一部分后,自动跳转到了联通的域名无法访问页面,http://bjdnserror1.wo.com.cn:8080/issueunziped/bj140404/self0.jsp?UserUrl=world.xxx.com,

    发现问题后,一开始以为是dns,但是通过分析,频道页,列表页,网站首页都没有问题,只有正文页面有问题;之后进行抓包,发现页面部分内容是可以正常加载的,加载一部分后就自动跳转,这时就想到有可能是页面模板被篡改,问过相关人员,早上没有进行任何修改与代码的提交;既然没有提交修改,又不是dns劫持的问题,那页面模板只有广告和其他业务的数据导致的,通过排查页面上的版块,发现一个版块引入的ssi中包含了:

    <html>
    <script language=javascript type="text/javascript">
        window.location.replace("http://bjdnserror1.wo.com.cn:8080?HOST=" 
            + location.hostname + "&R="
            + location.pathname + "&" + location.search.substr(location.search.indexOf("?")+1));
    </script>
    
    <noscript>
    <meta   http-equiv="refresh"   content="0;URL=http://bjdnserror1.wo.com.cn:8080">
    </noscript>
    <head>
    <title>Redirect</title>
    </head>
    <body bgcolor="white" text="black">
    </body>
    </html>
    

    查看这部分内容, 这个就是导致页面自动跳转的原因,那么,为什么会出现这段代码呢?询问相关人员,是CMS机器上的一个定时任务抓取论坛热点文章导致的,

    抓取部分代码如下:

    		$url = 'http://www.fadfadsfadsf.com/a.php';//错误接口地址
    		$content = '';
    			
    		$rank_info = file_get_contents($url);
    		$rank_info = trim($rank_info);
    		if (empty($rank_info) || stristr($rank_info,"Database Error")) return false;
    		$rank_info = strrev(substr($rank_info, strpos($rank_info, '<')));
    		$rank_info = strrev(substr($rank_info, strpos($rank_info, '>')));
    		$rank_info = str_replace('
    ', '',$rank_info);
    $file = fopen("test1.txt","w");
    echo fwrite($file,$rank_info);
    

     通过测试,有可能是定时任务在抓取瞬间,这个接口地址的dns解析出现问题,抓取后的内容就是上面自动调转的代码,当系统出现问题时,第一时间内要解决问题,赶紧让人通过手动更新了一下抓取任务,抓取就数据正常了。

    通过这个问题,考虑到后续需要改进的几点:

    1.业务与业务的内部系统间传递接口数据,最好采用json或xml形式,并且要包含数据获取正常与否的状态位;我们的问题发生是论坛业务提供的数据接口是js形式,cms人员还得通过过滤来获取数据,不知道以前的人员是怎么想的。。。。

    2.可以在服务器上指定交互系统的ip,跳过dns解析;

    3.运维可以考虑监控数据接口的调用结果,但是这个应该是个比较复杂的工程

  • 相关阅读:
    静态工具类中使用注解注入service
    赵伟国:芯片不像互联网 不能一招鲜吃遍天(发展芯片制造业已拥有三个纵深:市场纵深、资本纵深、人才纵深)
    将grub写入mbr
    Linux下Qt5.6 Fcitx无法输入中文输入解决办法
    为 Mac Finder 增加右键文件打包压缩(免费)
    Obtaining Directory Change Notifications(微软的例子,使用FindFirstChangeNotification,FindNextChangeNotification,FindCloseChangeNotification API函数)
    C#开发Linux守护进程
    排序算法比较与分析
    Mvc+Dapper+存储过程分页10万条数据
    RabbitMQ
  • 原文地址:https://www.cnblogs.com/daly2008/p/3654761.html
Copyright © 2011-2022 走看看