您是否偶然知道开源Java组件,该组件提供了扫描一组动态页面(JSP)并从中提取所有输入参数的功能。当然,搜寻器将能够搜寻静态代码而非动态代码,但是我的想法是将其扩展为搜寻包括所有服务器端代码的Web服务器。自然,我假设该工具将具有对爬网的Web服务器的完全访问权限,而不是通过使用任何黑客手段。
这个想法是建立一个静态分析器,它有能力检测所有动态页面中的所有参数(request.getParameter()等)字段。
这个想法是建立一个静态分析器,它有能力检测所有动态页面中的所有参数字段。
您不能使用 Web 搜寻器(基本上是HTML解析器)提取请求参数。他们最多可以扫描HTML结构。您可以为此使用例如Jsoup:
for (Element form : Jsoup.connect("http://google.com").get().select("form")) { System.out.printf("Form found: action=%s, method=%s%n", form.attr("action"), form.attr("method")); for (Element input : form.select("input,select,textarea")) { System.out.printf("\tInput found: name=%s, value=%s%n", input.attr("name"), input.attr("value")); } }
目前正在打印
找到的形式:动作=,方法= 找到输入:name = hl,value = en 找到输入:名称=来源,值= hp 找到输入:名称=即,值= ISO-8859-1 找到输入:名称= q,值= 找到输入:name = btnG,value = Google搜索 找到输入:name = btnI,value =我很幸运 找到输入:name =,value = 找到的形式:动作= /搜索,方法= 找到输入:name = hl,value = en 找到输入:名称=来源,值= hp 找到输入:名称=即,值= ISO-8859-1 找到输入:名称= q,值= 找到输入:name = btnG,value = Google搜索 找到输入:name = btnI,value =我很幸运
如果要扫描JSP 源代码 中的任何表单/输入,则必须朝另一个方向看,绝对不要将其称为“ Web搜寻器”。不幸的是,没有想到这样的静态分析工具。您最能得到的是创建一个Filter记录所有提交的请求参数的。
Filter
Map<String, String[]> params = request.getParameterMap(); // ...