• whatweb运行原理及各文件的作用详解


    输入指令之后,开始会在whatweb文件比对指令信息。之后,会根据判断条件进行检测插件的选择。如果没有指定自定义插件,那么就回家在默认插件,use_custom_plugin=false; plugin_selection=nil。此时会调用lib/plugins.rb文件,调用PluginSupport.load_plugins函数,此函数是加载插件目录的,在446行开始搜索插件识别插件,PluginSupport.load_plugin(f)为加载插件;PluginSupport.precompile_regular_expressions是一个优化插件的函数,对插件识别脚本进行进一步细化。跳出函数,继续往下调,就是HTTP Request的定义,可以用户自定义,也可以使用默认值。继续下去,就是对目标URL的筛选,这个会在whatweb文件中进行,具体在279行,make_target_list()这个函数会对URL进行筛选,规则化等操作。接下来为处理指定的URL,获取指纹信息。

    target.rb主要是对目标url进行处理,涉及到url的提交方式,如get、put、post等,还涉及到是采用http还是https,以及对各部分结果的处理。其中open方法判断是不是一个文件
    plugins.rb主要是插件处理,实现了插件的注册功能,加载插件,识别插件,对加载过的插件的正则表达式进行预编译。

    whatweb文件中函数的功能:
    gem_available?(): 此函数的返回值为true或false。gem的检测和加载

    make_tag_pattern(): 删除script和/script之间的内容。此方法在target.rb文件中被调用,@tag_pattern = make_tag_pattern(@body)。第106行

    make_target_list(): 对目标URL进行筛选,并使URL规则化

    run_plugins(): 指纹匹配和判断

  • 相关阅读:
    istio kiali 亲和性调度
    istio kiali 内部介绍
    istio kiali 可视化bookinfo
    Istio 部署Bookinfo 应用
    初探istio kiali
    安装Istio
    Istio 是什么?
    AQS源码浅析
    go 单元测试testify
    go unknown revision报错
  • 原文地址:https://www.cnblogs.com/rose1jj/p/10250527.html
Copyright © 2020-2023  润新知