爬虫第五篇 :Java httpclient 采集内网

Java爬虫HTTPS证书验证失败:SunCertPathBuilderException排查与解决方案 HTTPS作为保障网络通信安全的核心协议,其基础原理依赖于SSL/TLS握手过程中的证书验证机制。当客户端(如Java程序)访问HTTPS站点时,会通过证书链追溯至受信任的根证书颁发机构(CA),以此验证服务器身份的真实性。这一机制在数据抓取、API调用等工程实践中至关重要,能有效防范中间人攻击。然而,在容器化部署、云函数等特定运行环境中,常因证书库缺失或版本过旧,导致出现SunCertPathBuilderException异常,致使爬虫或HTTP客户端无法正常访问目标资源。本文聚焦该问题,深入剖析其成因 阅读详情

很多情况下,公司的电脑是加入域的,而且上外网是要通过代理上网的,这总情况下使用httpclient访问外网时必须使用代理,并且要通过NTLM验证,所以需要在httpclient中使用NTLM协议。

关于NTLM,可以参考这里。 以下给出解决此问题的代码。

有些时候采集需求会是公司内部人员提出,采集内网bbs

内网权限认证有时会基于NTLM

所以每次请求的时候需要请求头部带上认证信息

    public static String getWithNTCredential(String url,boolean needProxy,int msTimeOut){  
            log.info("--get url:[" + url + "]");  
            String responseBody = null;  
            HttpMethod getMethod = new GetMethod(url);  
            if(msTimeOut>0) {  
                getMethod.getParams().setSoTimeout(msTimeOut);  
            }  
            log.info("--queryString:" + getMethod.getQueryString());  
            HttpClient httpClient = new HttpClient();  
      
            if (needProxy) {  
                String proxyUrl = "10.xx.xx.xx";//代理机IP  
                String proxyPort ="8080";//代理机端口  
                String proxyUser ="xxxx";//代理用户名  
                String proxyPassword ="xxxx";//代理用户密码  
                String domain="xxxx.COM";//计算机所在的域  
                httpClient.getHostConfiguration().setProxy(proxyUrl,Integer.parseInt(proxyPort));  
                List authPrefs = new ArrayList(2);  
                authPrefs.add(AuthPolicy.NTLM);  
                httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,"Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1");   
                httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs);  
                // 如果代理需要密码验证,这里设置用户名密码  
                NTCredentials ntc=new NTCredentials(proxyUser, proxyPassword,proxyUrl,domain);  
                httpClient.getState().setProxyCredentials(AuthScope.ANY,ntc);  
            }  
            try {  
                int statusCode = httpClient.executeMethod(getMethod);  
                log.info("http get url:" + getMethod.getURI());  
                log.info("----http status code:" + statusCode);  
                if (statusCode == HttpStatus.SC_OK ||  statusCode==HttpStatus.SC_PARTIAL_CONTENT) {  
                    responseBody =  getMethod.getResponseBodyAsString();  
                }  
            } catch (HttpException e) {  
                e.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            } finally {  
                getMethod.releaseConnection();  
            }  
            return responseBody;  
        }  

参考资料:
http://www.cnblogs.com/nbpowerboy/archive/2013/05/19/3086579.html

SSRF漏洞挖掘实战:从原理到内网漫游的攻防指南 服务器端请求伪造(SSRF)是一种允许攻击者诱使服务器向内部或受保护网络发起任意HTTP请求的安全漏洞。其核心原理在于应用程序对用户提供的URL参数缺乏严格的校验与过滤,导致信任边界被突破。从技术价值看,SSRF的危害远超普通Web漏洞,它能将攻击面从单一应用扩展到整个内网架构,成为渗透测试中穿透网络隔离的关键跳板。在应用场景上,常见于文件处理、数据聚合、Webhook回调及第三方集成等功能模块。本文聚焦SSRF漏洞的成因与利用,深入剖析如何通过协议滥用、地址编码绕过等手法,实现对内网服务的探测与攻击,并结 阅读详情

相关推荐

SSRF漏洞实战进阶:从探测绕过到内网攻击与自动化利用

服务器端请求伪造(SSRF)是一种允许攻击者诱使服务器向内部或外部系统发起非预期请求的Web安全漏洞。其核心原理在于应用程序未对用户提供的URL参数进行充分校验与过滤,导致攻击者能够操控服务器发起请求。该漏洞的技术价值在于可能绕过网络边界,成为攻击内网系统、访问云元数据或实现权限提升的关键跳板,在云原生与微服务架构中风险尤为突出。典型的应用场景包括存在远程资源加载、文件处理、Webhook回调或代理功能的Web应用。本文聚焦于SSRF的实战挖掘,深入探讨如何通过协议探测、重定向绕过、IP变形等高级技巧,结合

weixin_30457465的博客 1991

中心门户数据爬虫-NTLM安全认证

直接通过get请求获取网站首页,发现出现授权错误 模拟浏览器使用cookie获取首页,还是授权错误 禁用浏览器cookie、js、图片等,发现浏览器能正常获取首页,因此排除cookie 网友说可能是reference的问题,可我在头部没发现reference属性 使用wireshark查看HTTP流,看看HTTP流中有没有相关的安全认证信息 通过wireshark发现每次请求主页都发起了三个HTT...

mbshqqb的博客 571

Java HTTPS证书验证绕过:安全实现HTTP/HTTPS兼容客户端

SSL/TLS证书验证是HTTPS通信安全的基础机制,通过证书链验证、域名匹配和有效期检查确保通信双方身份可信。其核心原理基于公钥基础设施(PKI)体系,由受信证书颁发机构(CA)签发服务器证书,客户端通过信任库验证证书合法性。在Java开发中,这一机制通过X509TrustManager和SSLContext实现。虽然证书验证对生产环境安全至关重要,但在开发测试、内网环境或对接自签名证书服务时,严格的验证可能引发“PKIX path building failed”等异常。为解决这一矛盾,可通过创建自定义

weixin_28622215的博客 266

httpclient post方法【亲测可用】

很多代码都是根据需求来搞代码的。很早之前的就是给app写的接口,主要项目采用的是基础RMI的项目,服务层不能暴露给外网访问,所以需要给App写转发接口,让App调用其他平台的(内网)接口,重定向很简单的的,但是需要接受其他平台的返回的json。 主要使用的httpClient的post方法:直接上代码 添加依赖: <!--httpcomponents的包--> <depende...

wzder 2万+

Java集成K3Cloud WebApi实战:认证、会话管理与数据交互详解

在企业级应用开发中,系统集成是实现数据互通和业务流程自动化的核心技术。通过Web API进行跨系统通信,其核心原理是基于HTTP协议,通过标准化的接口规范完成数据交换。这项技术的价值在于能够连接异构系统,打破信息孤岛,提升企业运营效率。典型的应用场景包括ERP与自研业务系统、移动应用及供应链平台的对接。本文聚焦于Java语言调用金蝶K3Cloud WebApi这一具体实践,深入剖析其特有的动态密码认证机制和基于Cookie的会话管理,并提供了使用Apache HttpClient进行稳定调用的完整方案与避坑

weixin_34221112的博客 366

SSRF进阶:从内网探测到攻击第三方系统的威胁跃迁与防御

服务器端请求伪造(SSRF)是一种常见的Web安全漏洞,其核心原理是攻击者能够诱使后端服务器向任意指定的地址发起网络请求。这一机制的技术价值在于,它能够绕过常规的网络边界防护,将受信任的服务器转化为攻击跳板。在应用场景上,SSRF的危害已从经典的内网服务探测,扩展到攻击云环境下的其他租户服务、业务关联的第三方API以及作为代理发起撞库或DDoS攻击。理解其完整的攻击链路,包括漏洞触发点、服务器请求的上下文(如网络权限、携带的认证凭证及支持的协议),对于构建纵深防御体系至关重要。本文聚焦于SSRF攻击其他后端

weixin_30745553的博客 354

httpclient请求接口超时问题

最近线上出现一个问题,外部请求过来后一直没有响应给调用方,看日志没有报错,可以复现。 想到的就可能是五个原因: 日志文件过大导致磁盘空间满了,导致正常的业务日志无法写入,但是重启后发现日志能正常写入,排除这个问题 系统对接很多外部数据源,可能哪个数据源响应延迟导致没有返回导致系统服务一直等待 数据库连接池无可用连接,请求一直在等待可用数据库连接导致外部数据请求一直没有返回 代码哪里有问题导致死锁...

wlyang666的博客 5545

Unirest-Java安全配置实战:SSL证书验证与代理设置详解

在Java应用开发中,HTTP客户端是调用外部API、集成第三方服务的核心组件。其底层依赖于SSL/TLS协议保障通信安全,该协议通过数字证书验证机制,确保客户端与服务器之间的连接不被窃听或篡改。理解证书链验证、信任库管理以及代理服务器的工作原理,对于构建稳定、安全的企业级应用至关重要。尤其是在微服务架构和混合云环境中,正确处理自签名证书、配置双向认证(mTLS)以及设置代理排除规则,成为保障服务间通信顺畅与安全的关键技术实践。本文聚焦于Unirest-Java这一流行HTTP客户端库,通过解析SSLHan

weixin_42706667的博客 329

Java单机爬虫

1.上述爬虫是单线程的,可以对代码改进,增加一个工作线程池,这些线程并行地从url队列中取出url进行处理。或者更好的解决方案是分布式爬虫,在这种情况下 将url队列和已访问过的url存储在数据库中,同时使所有节点能够访问该数据库。看了一阵子的多线程的文档,看得头大,想想自己是搞数据挖掘的,还是搞分布式爬虫更对路,知乎上有牛人建议用redis做分布式队列,有机会尝试下。 2.上述代码只是将网页的网址和标题保存在文件中,如果想做文本挖掘,需要保存网页的全部文本,可以试一下jsoup或apache tika。

LJBlog2014的专栏 2047

Java垂直爬虫实战:优快云博客定向采集方案

垂直爬虫是一种面向特定网站结构深度定制的网页抓取技术,其核心在于精准识别目标站点的DOM特征与反爬机制。相比通用批量爬虫,它通过CSS选择器绑定、登录态维持、HTML实体转义还原等手段,实现高稳定性与低维护成本。Java凭借JVM内存可控性、Jsoup健壮解析能力及企业级集成优势,成为生产环境垂直爬虫的优选语言。本文聚焦优快云个人博客这一典型场景,提供开箱即用的Maven工程ZIP包,涵盖Cookie管理、动态渲染处理、分页逻辑与反爬绕过策略,适用于Java工程师快速落地技术博客数据采集、内容归档与知识库

weixin_34327223的博客 325

爬取学校内网的个人信息

主要利用jsoup爬取学校内网的个人信息,课表等等,在移动设备上显示,查看

Java学习第八十四部分——HttpClient

HttpClient 是一个用于发送 HTTP 请求和接收 HTTP 响应的客户端库,广泛应用于 Web 开发、API 调用、微服务通信等场景。本文介绍它的主要特点,功能用法,应用场景等内容。

2503_92550335的博客 1322

RAG在医药行业为什么80%都翻车了?

这篇文章不是要劝你别做RAG,而是把坑说清楚。医药行业有它的特殊性——监管压力、专业术语密度、多语言混排、文档结构复杂——这些因素叠加在一起,让标准RAG教程里的那套方法论几乎直接失效

qq_31808385的博客 635

利用Fiddler手机抓包对ONE APP网页爬虫实现电影资讯微信Java开发

利用Fiddler手机抓包对ONE APP网页爬虫实现电影资讯微信Java开发

qq_43717814的博客 2013

VisualSFM+MeshLab 三维重建全过程记录

VisualSFM+MeshLab 三维重建全过程记录,从下载到运行出结果,以及其中一些可能出现的小问题。通过这两个软件熟悉一下多目立体视觉重建的流程。

何似莫相逢 3万+

新年美食鉴赏——基于注意力机制CBAM的美食101分类

新年美食鉴赏——基于注意力机制CBAM的美食101分类一、数据预处理1.数据集介绍2.读取标签3.统一命名4.整理图片路径5.划分训练集与验证集6.定义美食数据集二、注意力机制1.简介2.卷积块注意力网络——CBAM通道注意力模块CAM空间注意力模块SAM3.将通道、空间注意力模块合并三、基于卷积块注意力模块的ResNet-CBAM1.代码实现2.模型测试3.查看网络结构4.模型训练5.模型预测四、总结与升华个人简介 春节是一年当中最隆重、最盛大的节日,吃得最好的一餐可能就是年夜饭了,想想就很激动呢!随着新

zbp_12138的博客 1万+

Java SSL握手失败:PKIX路径构建原理、诊断与解决方案全解析

SSL/TLS协议是保障网络通信安全的基石,它通过非对称加密和数字证书实现身份验证与数据加密。其核心原理在于建立一条从服务器证书到可信根证书的完整信任链,即证书链验证。这一机制的技术价值在于确保通信双方的身份可信,防止中间人攻击。在HTTPS API调用、微服务通信等应用场景中,Java应用常因证书链不完整或根证书缺失而抛出“PKIX path building failed”异常。本文聚焦于这一高频问题,深入剖析其成因,并提供从服务端配置修复到客户端信任库管理的系统化解决方案,涵盖Apache HttpC

aobu0171的博客 366

Ollama+FAISS+Embedding+Rerank+LLM 详细部署指南

下载安装Ollama 双击运行安装程序 安装完成后会自动启动服务 修改默认安装路径(避免C盘爆满) 或使用PowerShell: 验证安装 Linux系统部署: (二)准备模型 1. 拉取Embedding模型 2. 拉取LLM模型 注意:原文中提到的可能需要从自定义仓库拉取: 3. 下载Rerank模型 (三)安装依赖库 创建项目目录和虚拟环境: 二、主要功能实现 项目结构 (一)配置文件(config/config.yaml) (二)文本分块策略实现 创建 : (三)文档读取

AI技术改变世界 1575

泛微E-Cology SSRF漏洞深度剖析:从原理到实战利用与防御

SSRF(服务器端请求伪造)是一种常见且危害巨大的Web安全漏洞,其核心原理在于攻击者能够诱使服务器向任意指定的网络地址发起请求。这种漏洞通常出现在文件处理、数据导入、远程资源加载等功能模块中,当应用对用户可控的URL参数过滤不严时,服务器便可能成为攻击者探测或攻击内网的代理。从技术价值看,SSRF不仅能够用于探测内网拓扑、识别内部服务,还可能被用于访问云服务器元数据、攻击内网脆弱应用,甚至结合其他漏洞实现权限提升。在泛微E-Cology这类大型协同管理平台中,文件预览、下载等涉及外部资源获取的接口是SSR

chengli1824的博客 486

AUTOSAR BswM配置实战:手把手教你用Vector Davinci Configurator搭建第一个模式管理规则

本文详细介绍了如何使用Vector Davinci Configurator工具配置AUTOSAR BswM模块,实现车身控制ECU的模式管理规则。通过实战案例,从环境准备、核心概念梳理到具体配置步骤,包括ModeRequestPort、ModeCondition、Logical Expression和Rules的构建,帮助工程师快速掌握BswM配置技巧,提升汽车电子软件开发效率。

weixin_28678831的博客 351

基于昇腾MindIE开箱部署Qwen2.5-VL-32B,体验更聪明的多模态理解能力

昇腾MindIE已适配支持Qwen2.5-VL-32B-Instruct并上架魔乐社区,欢迎广大开发者下载体验!

2401_87243659的博客 6870
上一篇: Mycat数据库中间件初步实践
下一篇: maven 命令集合
hamish-wu
博客等级 码龄15年 2814粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值