httpclient

【代码审计01】几种常见的漏洞种类以及代码审计工具

。_饼干妹妹 提交于 2020-03-25 12:53:00
3 月,跳不动了?>>> 前言 代码审计是在经过黑盒测试完毕,也就是检查应用的基本功能是否符合产品业务需求下进行的。需要有一定的编码基础以及对漏洞形成原理的基本认知,通过工具或者经验检测代码中可能出现的bug,并在不同平台(windows,linux),不同PHP版本下测试。比如PHP的很多新版本会对一些指令废弃删除,但是在旧版本中却能使用,而该版本下的指令即有可能会被人发现漏洞。 PHP核心配置 PHP配置对于大多数人都是通过php.ini设置,但其实是有配置范围的,比如一些指令配置只能通过php.ini配置,也有一些可以在PHP脚本中设置,通过ini_set()函数,详细可以查询PHP_INI.*的列表和ini_set使用方法。 代码审计工具 1.seay源代码审计工具(公众号回复"审计"可获取) 2. HackBar漏洞验证辅助(火狐浏览器扩展) 代码审计思路 1. 查看敏感函数追踪参数 2. 全部通读一遍源码了解逻辑 3. 按功能点审计追踪 常见的几种漏洞类型 1. SQL注入 2. XSS漏洞(跨站脚本攻击) 3. CSRF漏洞(跨站请求伪造) 4. 文件操作漏洞 5. 代码执行漏洞 6. 命令执行漏洞 7. 变量覆盖漏洞 8. 业务逻辑漏洞 9. 越权与提权 10. 二次注入 11. ……等等 小结&待续 由于在代码审计中会涉及到很多知识点,所以这里只先总结一个引文

missing requirement osgi.wiring.package; (osgi.wiring.package=org.apache.http)

旧城冷巷雨未停 提交于 2020-03-24 14:38:10
3 月,跳不动了?>>> ODL引入httpclient包,引入之后报错,报根据指定版本引不到包,发现httpclient的包在opendaylight-0.11.0\system下面已经有了,为了快速开发,猜测可能有地方已经引用了这个包了,全局搜索下找到odl-infrautils-diagstatus这个feature下有关于httpclient的引用,于是在想要改源码的地方加入对这个feature的引用就可以了。 如下引用就可以了: <feature version="1.6.0" prerequisite="false" dependency="true">odl-infrautils-diagstatus</feature> 以上,是为了快速解决问题而找到的比较巧的办法,后面如果需要引入odl本身库里不存在的包则需要一步一步的再研究。 来源: oschina 链接: https://my.oschina.net/u/1271447/blog/3210164

使用 HttpClient 和 HtmlParser 实现简易爬虫

南笙酒味 提交于 2020-03-24 09:47:52
使用 HttpClient 和 HtmlParser 实现简易爬虫 这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Internet 上的网页,以及如何使用 HttpClient 来简化 Get 和 Post 请求操作,构建强大的网络应用程序。 2 评论: 蒋宏伟 ( jianghongwei_tju@yahoo.com.cn ), 在校学生, 天津大学计算机学院 2008 年 9 月 11 日 内容 在 IBM Bluemix 云平台上开发并部署您的下一个应用。 现在就开始免费试用 使用 HttpClient 和 HtmlParser 实现简易爬虫 这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Internet 上的网页,以及如何使用 HttpClient 来简化 Get 和 Post 请求操作,构建强大的网络应用程序。 回页首 HttpClient 与 HtmlParser 简介 本小结简单的介绍一下 HttpClinet 和 HtmlParser 两个开源的项目

HtmlParser + HttpClient 实现爬虫

*爱你&永不变心* 提交于 2020-03-24 09:44:11
简易爬虫的实现 HttpClient 提供了便利的 HTTP 协议访问,使得我们可以很容易的得到某个网页的源码并保存在本地;HtmlParser 提供了如此简便灵巧的类库,可以从网页中便捷的提取出指向其他网页的超链接。笔者结合这两个开源包,构建了一个简易的网络爬虫。 爬虫 (Crawler) 原理 学过数据结构的读者都知道有向图这种数据结构。如下图所示,如果将网页看成是图中的某一个节点,而将网页中指向其他网页的链接看成是这个节点指向其他节点的边,那么我们很容易将整个 Internet 上的网页建模成一个有向图。理论上,通过遍历算法遍历该图,可以访问到Internet 上的几乎所有的网页。最简单的遍历就是宽度优先以及深度优先。以下笔者实现的简易爬虫就是使用了宽度优先的爬行策略。 图 2. 网页关系的建模图 简易爬虫实现流程 在看简易爬虫的实现代码之前,先介绍一下简易爬虫爬取网页的流程。 图 3. 爬虫流程图 各个类的源码以及说明 对应上面的流程图,简易爬虫由下面几个类组成,各个类职责如下: Crawler.java:爬虫的主方法入口所在的类,实现爬取的主要流程。 LinkDb.java:用来保存已经访问的 url 和待爬取的 url 的类,提供url出对入队操作。 Queue.java: 实现了一个简单的队列,在 LinkDb.java 中使用了此类。 FileDownloader

Are http operations of the httpClient always Single value Observables? Can they somehow emit more then one value?

五迷三道 提交于 2020-03-23 02:04:48
问题 I have a hard time to grasp the way http Observables work. Http get always completes, when only one value arrives but there is no way to look up the implementation. Do they always complete after error or a value arrives? I have a lot of discussion with my collegues, because the use in every http operation the following procedure: const sub = this.http.get( enviroment.baseUrl + '/users').pipe(take(1)) .subscribe( value => { //do something with the value }, error => consol.log(error.message));

理解并使用.NET 4.5中的HttpClient

旧巷老猫 提交于 2020-03-20 23:49:25
HttpClient介绍 HttpClient是.NET4.5引入的一个HTTP客户端库,其命名空间为System.Net.Http。.NET 4.5之前我们可能 使用 WebClient和HttpWebRequest来达到相同目的。但是有几点值得关注: 可以 使用 单个HttpClient实例发任意数目的请求 一个HttpClient实例不会跟某个HTTP服务器或主机绑定,也就是说我们可以用一个实例同时给www.a.com和www.b.com发请求 可以继承HttpClient达到定制目的 HttpClient利用了最新的面向任务模式,使得处理异步请求非常容易 异步HTTP GET 下面是一个 使用 HttpClient进行HTTP GET请求数据的例子: class HttpClientDemo { private const string Uri = "http://api.worldbank.org/countries?format=json"; static void Main(string[] args) { HttpClient httpClient = new HttpClient(); // 创建一个异步GET请求,当请求返回时继续处理 httpClient.GetAsync(Uri).ContinueWith( (requestTask) => {

HttpClient使用详解

99封情书 提交于 2020-03-20 23:49:02
转载于:http://blog.csdn.net/wangpeng047/article/details/19624529 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的 URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接 口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握 HttpClient后,相信对于Http协议的了解会更加深入。 一、简介 HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。 HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。 下载地址: http://hc.apache.org/downloads.cgi 二、特性 1. 基于标准、纯净的java语言。实现了Http1.0和Http1.1 2. 以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS

HttpClient 教程 (二)

无人久伴 提交于 2020-03-20 23:48:07
第二章 连接管理 HttpClient有一个对连接初始化和终止,还有在活动连接上I/O操作的完整控制。而连接操作的很多方面可以使用一些参数来控制。 2.1 连接参数 这些参数可以影响连接操作: 'http.socket.timeout': 定义了套接字的毫秒级超时时间(SO_TIMEOUT),这就是等待数据,换句话说,在两个连续的数据包之间最大的闲置时间。如果超时时间是0就解释为是 一个无限大的超时时间。这个参数期望得到一个java.lang.Integer类型的值。如果这个参数没有被设置,那么读取操作就不会超时(无限大的超 时时间)。 'http.tcp.nodelay': 决定了是否使用Nagle算法。Nagle算法视图通过最小化发送的分组数量来节省带宽。当应用程序希望降低网络延迟并提高性能时,它们可以关闭 Nagle算法(也就是开启TCP_NODELAY)。数据将会更早发送,增加了带宽消耗的成文。这个参数期望得到一个 java.lang.Boolean类型的值。如果这个参数没有被设置,那么TCP_NODELAY就会开启(无延迟)。 'http.socket.buffer- size':决定了内部套接字缓冲使用的大小,来缓冲数据同时接收/传输HTTP报文。这个参数期望得到一个java.lang.Integer类型的 值。如果这个参数没有被设置

HttpClient 教程 (二)

纵饮孤独 提交于 2020-03-20 23:47:50
第二章 连接管理 HttpClient有一个对连接初始化和终止,还有在活动连接上I/O操作的完整控制。而连接操作的很多方面可以使用一些参数来控制。 2.1 连接参数 这些参数可以影响连接操作: 'http.socket.timeout':定义了套接字的毫秒级超时时间(SO_TIMEOUT),这就是等待数据,换句话说,在两个连续的数据包之间最大的闲置时间。如果超时时间是0就解释为是一个无限大的超时时间。这个参数期望得到一个java.lang.Integer类型的值。如果这个参数没有被设置,那么读取操作就不会超时(无限大的超时时间)。 'http.tcp.nodelay':决定了是否使用Nagle算法。Nagle算法视图通过最小化发送的分组数量来节省带宽。当应用程序希望降低网络延迟并提高性能时,它们可以关闭Nagle算法(也就是开启TCP_NODELAY)。数据将会更早发送,增加了带宽消耗的成文。这个参数期望得到一个java.lang.Boolean类型的值。如果这个参数没有被设置,那么TCP_NODELAY就会开启(无延迟)。 'http.socket.buffer-size':决定了内部套接字缓冲使用的大小,来缓冲数据同时接收/传输HTTP报文。这个参数期望得到一个java.lang.Integer类型的值。如果这个参数没有被设置

HttpClient 教程 (二)

ⅰ亾dé卋堺 提交于 2020-03-20 23:47:05
第二章 连接管理 HttpClient有一个对连接初始化和终止,还有在活动连接上I/O操作的完整控制。而连接操作的很多方面可以使用一些参数来控制。 2.1 连接参数 这些参数可以影响连接操作: 'http.socket.timeout':定义了套接字的毫秒级超时时间(SO_TIMEOUT),这就是等待数据,换句话说,在两个连续的数据包之间最大的闲置时间。如果超时时间是0就解释为是一个无限大的超时时间。这个参数期望得到一个java.lang.Integer类型的值。如果这个参数没有被设置,那么读取操作就不会超时(无限大的超时时间)。 'http.tcp.nodelay':决定了是否使用Nagle算法。Nagle算法视图通过最小化发送的分组数量来节省带宽。当应用程序希望降低网络延迟并提高性能时,它们可以关闭Nagle算法(也就是开启TCP_NODELAY)。数据将会更早发送,增加了带宽消耗的成文。这个参数期望得到一个java.lang.Boolean类型的值。如果这个参数没有被设置,那么TCP_NODELAY就会开启(无延迟)。 'http.socket.buffer-size':决定了内部套接字缓冲使用的大小,来缓冲数据同时接收/传输HTTP报文。这个参数期望得到一个java.lang.Integer类型的值。如果这个参数没有被设置