短网址网站检测流程的实现

2016年11月24日来源:980短网址原创分类:短网址阅读(71评论(0

  短网址网站安全状态远程检测模块包括网站超链接、防篡改及关键词匹配等子功能实现。

  短网址页面防篡改横块实现

  程序设计思路

  短网址页面内容检测主要检测图片和文字(包括其大小、位置、格式、内容等各种信息),判断其有没有被篡改有两种方式:

  1、用jsoup将html的不同惊签解析开来,分剔获取到包含图片和包含文字的标签,然后通过正则DFA引擎对其进行深入解析,记录其属性值,通过对比属性进行检测。

  2、对html进行适量的操作,然后通过MD5加密进行比较,当获取到的html文件与模板中文件的MD5编码不同时,则通过字节匹巧查询被篡改部分。

  考虑到动态网页,有可能因为图片路径根据某种算法自动发生改变,为了让短网址网站的可用性巧加,能够自适应于动态网页,项目中先把图片的路径通过替换掉,然后再进行宇符串匹配。从网页文件中获取到所有的图片链接,根据相对路径获取到绝对路径,然后下载图片与模板中进行比较,当图片发生改变时进行记录。当文字发生改变时通过字节匹配,获取到被篡改的具体位置,并将篡改的标签保存起来。


  短网址页面防篡改检测程序流程图

  页面防篡改流程,首先对正确的模板页面进行操作,运用hash算法计算模板页面的MD5值,然后再计算腮虫抓取的待检测页面的MD5值,并由页面防篡改模块对上述二者MD5值进行比对,从而判断页面內容是否被篡改。

  当发现MD5值不同,即存在篡改现象后,页面防篡改模块则会进一步比对模板页面源码和待检测页面源码,来滿认被篡改内容及被篡巧位置。之后再通过短信或者邮件的方式报并写入检測报表。用户可遁过査询报表获取到被篡改的具体内容,如图片的URL和被篡改的文字内容及位置,从而对其进行修正。

短网址页面防篡改模块程序流程图



  短网址网站全站链接检测

  设计思路

  死链接是指原来正常,后来失效的链接。死链接发送请求时,服务器返回404错误页面。错误链接是指由于用户的疏忽,请求的链接不存在。在检测过程中出现无法访问的网页时,根据其不能巧问的原因分为死链接和错误链接,并进行记录写入检测报表。


  短网址网站全站锥接检测程序流程图

  全站链接检测流程与网站服务状态检测流程一致,httpclient获取的URL为网页爬虫在该站点爬取得每一个链接的URL,再提取访问获取的返回值得到返回码。若返回码为200,则进入爬虫模块的下载列队,再交给其他功能模块做后续处理,若返回码不为200,则根据返回码的值判断异常原因,再进行预答并写入检测报表。


  短网址网站关键程序代码一

  当文字被篡改材,为了方便用户查询修改,将被篡改的标签整个保存下来;每个标签的模式:或者。由于script和style与文字图片的篡改没有什么关系,而且会影响到查询效率,因此在实现中先把网页文件里面的script和style替换掉。

  script和style替换,使用的是Jsoup实现,代码如下:

  public static List getScript(String html){

  List script = new ArrayList ();

  Document doc = Jsoup.parse(html);

  Elements e = doc.化 lect("script");

  for(int i=0;i

  script.add(e.get(i).Data());

  }

  return script;

  }

  public static List ge设tyle口tring

  /*实现类似于getScript */

  .......

  }

  public static String replaceScriptCSS(String modelText){

  Listlist=getScript(modelText);

  for(inl i=0;i

  If(list .get(i).isEmpty())

  continue;

  modelText = modelText.replace(list.get(i), "**');

  }

  //替换style同上

  return modelText;

  }

  全文匹配时,当发现有字节被篡改时,通过字节对比,将不同信息保存下来的伪代码如下:

  //需要进一步检测那个文字被篡改,先把string类型保存到字节数组里面

  //新建两个足游大的字节数组分别保存模板和查询到文件里面的内容

  /*解决措施:将被篡改的标签整个保存下来;每个标签的模式:

  <........./> 或者 <........./>*/

  //保存到报表里面

  图片的相对链接本项目中用的是正则表达式,然后通过Matcher和Pattern实现。

  正则表达式如下:

  "(?x)((http://|/)([w-]+.)+[w-]+(:[0-9]+)*(/[w-]+)*

  (/[w-]+.(jpg|JNG|png|PNG|gif)))(‘|“)”;

  将图片以二进制形式保存起来伪代码如下:

  //获取到图片名和图片后缀,文件名十后缀的格式命名图片,将图片保存在本地。

  //建立URL连换获取到图片二进制代码;

  URL url = new URL(urlstr);

  URLConnection connection = url.openConnection();

  connection.setDoOutput(true);

  connection.setRequestPropertyC'referer", u);

  //通过这个http头的伪装来反盗链

  Bufferedimagc image=Lmagei().read(connection.getinputStream());

  File()utputStream fout=new File()utputStream(realPath+fileName);

  用fout将图片以流的形式输出保存起来。


  短网址网站关键程序代码二

  通过html获取所有文字的伪代码如下:

  //获取文字使用的正则表达式为;>(!<)*(<),

  在全站监测过程中,实现网页爬虫,需要获取网页上的URL,主要代码如下:

  Public static void getHi*efOfContent(String content. String baseUrl’UrlQueueuq,VisitedUriQueue vuq){

  if (COMtent != null){

  String[] contents = content.split("

  for (int i = 1; i < contents.length; i++)}

  int endHref = contents[i].indexOf("V"’);

  String atiref = FunctionUtils.getHrefOfInOut(

  contentsy].substring(0, endHref), baseUrl);

  if(aHref !=null) {

  if yuq.isContains(aHref)

  && !vuq.isCo打tains(aHref)&&!uq.Istoomuh){

  uq.addElem(aHref);

  if(uq.Size() = UrlQueue.MAX_SIZE)

  uq.istoomuch = true;

  }

  }

  }}

  System.out.println(uq.Size() + "-抓取到的连接数");

  System.out.println(vuq.size() + "-已处理的页面数");

  }

  }

上一篇:短网址网站状态检测代码设计

下一篇:短网址网页木马常见9种挂马技术

精彩评论
评论
热门文章
980安全专家教您认识短链接安全
防护恶意网址用短链接欺骗的对策
对付恶意短链接我有妙招
蓝瘦、香菇,每天和短链接技术打交道
短信利用短网址撬动移动营销市场
文章归档
2016年12月
2016年11月
2016年10月
2016年09月
2016年07月
2016年06月
热门标签
短网址
短链接
网址缩短
短网址服务
短网址应用
短网址营销
短网址生成
缩短网址
短链接生成
短网址还原
短网址检测法
自定义短网址