Java:为什么HttpsURLConnection将POST请求拆分为2个TLS记录

时间:2019-06-11 08:41:58

标签: java http ssl https

我正在研究POODLE攻击的概念证明。我需要在其中发送带有跨站点来源的POST请求。为此,我正在使用Java小程序。我希望数据包是具有单个hmac的单个TLS记录,但是当发送带有Java的httpsURLconnection的POST请求时,该请求会被拆分。查看Wireshark数据包日志,将请求分为两个部分,每个部分分别包含hmac和padding。

Java版本为java-1.8.0-openjdk-amd64,并且小程序运行在firefox 26中。当发送不带正文的发布请求时,仅发送一条记录。

这是发送请求的代码

URLConnection conn = new URL(url).openConnection();
HttpsURLConnection httpConnection = (HttpsURLConnection) conn;

httpConnection.setDoOutput(true);
httpConnection.setRequestMethod("POST");
httpConnection.setRequestProperty("Content-Type", "a");
httpConnection.setRequestProperty("Accept", "a");
httpConnection.setRequestProperty("User-Agent", "a");

httpConnection.getOutputStream().write(bytes);
httpConnection.getOutputStream().flush();
httpConnection.getOutputStream().close();

是否将content-length设置为请求标头和正文的完整大小会导致发送一条记录(setFixedLengthStreamingMode)?还是可以用其他方法完成?

0 个答案:

没有答案