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.运维可以考虑监控数据接口的调用结果,但是这个应该是个比较复杂的工程

  • 相关阅读:
    原创:微信小程序页面跳转展示缓冲提示
    转发:微信小程序-template模板使用
    JS正则判断输入框是否仅仅含有汉字、字母和数字
    jQuery使用正则判断是否含有非法字符
    允许远程用户登录访问mysql的方法
    如何使php页面中不再出现NOTICE和DEPRECATED的错误提示
    原生php如何获取当前页面的url
    jQuery写缓存之:sessionStorage的运用,配合PHP将不同tab页的数据写入后台
    TP2.0或3.1 或者 3.2 下使用ajax+php做无刷新分页(转+自创)
    jquery中的replaceWith()和html()的区别
  • 原文地址:https://www.cnblogs.com/daly2008/p/3654761.html
Copyright © 2011-2022 走看看