问题标签 [heartbleed-bug]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - Heartbleed:有效负载和填充
阅读 RFC 6520 for Heartbeat 后,我有几个问题:
https://www.rfc-editor.org/rfc/rfc6520
具体来说,我不明白为什么心跳需要包含任意有效负载甚至填充。据我了解,心跳的目的是验证对方是否还在线路的另一端关注。
这些可变长度的自定义有效负载提供了固定请求和响应所没有的什么?
例如
毕竟,FTP 使用 NOOP 命令来保持连接处于活动状态,这似乎工作正常。
python - Python3 在以下脚本中理解 ord()...“TypeError: ord() 预期的长度为 1 的字符串,但找到了 int”
我有以下脚本,来自基于 python 2.x 的开放项目:
用 Python3 处理脚本的变化在于:
rdata = b ''
但是,如果我使用 url 调用脚本,则会收到以下错误:
ord() 预期长度为 1 的字符串,但找到 int 特定部分:
我该如何处理?
感谢您的每一个帮助!
apache - 将来如何避免类似 Heartbleed 的问题?
据我了解,Heartbleed 的问题是访问先前请求的内存?是不是用完后就不能擦内存了?为每个请求使用不同的内存空间,这是不可访问的?如果 web 服务器(例如 apache 或 nginx)由多个进程启动,它们是否仍然共享包含用户信息的内存?
简而言之,我的问题是:是否可以配置 Apache/Nginx/others 以使用更安全的内存访问模型?
性能降低无关紧要,因为 Heartbleed 2.0 最终会出现,然后您只需快速笑一下,而不是做大量工作。
ssl - 关于 OpenSSL heartbleed 的填充
我对openSSL中心跳的填充部分有一些不明白的地方。在 openssl 1.0.1g 的代码中显示如下:
它显示填充的长度是 16,但是在 RFC6520 中,它说填充长度至少为 16 个字节。那么如果客户端发送带有填充(32字节或更大)的心跳,OpenSSL的代码是否仍然存在漏洞?
buffer-overflow - 内存中不可打印的字符
在心脏出血漏洞利用中,我基本上从服务器获得了很多奇怪的字符(不可打印)。
有人可以告诉我,当我读取一个连续的内存段时,如何解释那些不可打印的字符?
php - 可以从 PHP 5.5.1 升级到 PHP 5.5.12 吗?
目前我的生产服务器安装了 PHP 5.5.1 并且工作正常。
PHP 5.5.1 (cli) (内置: Jan 14 2014 11:37:09)
版权所有 (c) 1997-2013 PHP 集团
Zend Engine v2.5.0,版权所有 (c) 1998-2013 Zend Technologies
然而根据这篇文章PHP 已经发布了 5.5.12 来修复一些 OpenSSL 问题。我们在 CodeIgniter 上运行。
正如我所见,5.5.1 和 5.5.12 之间没有重大变化,只有错误修复和少量添加。所以顺利升级PHP版本应该没问题。
然而最近我们也升级到更新版本的 OpenSSL 避免了心脏出血的错误。那么现在是否有必要出于同样的原因升级 PHP?
如果我没有遗漏任何东西,那么升级不会导致任何与版本相关的问题吗?
注意:正如帖子中提到的共享主机/服务器的示例,我们有自己的多个专用服务器在负载均衡器后面运行。
openssl - 无法连接到启用了 OPENSSL_NO_HEARTBEATS 的 OpenSSL 服务器
我有一个运行 OpenSSL v 0.9.8 的服务器和一个基于 OpenSSL 1.0.1e 的客户端。当客户端 OpenSSL 库使用 -DOPENSSL_NO_HEARTBEATS 编译时,它无法连接到服务器。我唯一看到的是错误页面。请提出一些建议。有什么方法可以调试这个?
java - 使用 java.lang.String 存储敏感数据有害吗?
因为 Java 字符串对象是不可变的并且垃圾收集器是异步的,所以将身份验证信息存储在字符串中会阻止一种有利于线程安全的安全性。
安全处理此类信息需要可变性,即将以前用于存储敏感信息的内存清零。
假设您可能正在使用带有 HeartBleed 漏洞的 openssl 版本。
一个简单的身份验证实现是否会导致 JVM 内存中充斥着用户名和密码?
如果您不能先验地知道信息不敏感,是否应该完全避免使用 java.lang.string?
作为一个附带问题,JVM 可以做些什么来降低风险?我不知道有一个开关是“尽快零填充回收内存”。
regex - 正则表达式匹配安全的 openssl 和不安全的 openssl
这样做的目的是在许多具有 ansible 或 fabric 的机器上运行它,以找出您的哪些机器容易受到心脏出血的影响。Heartbleed 已经出了一段时间了,这会搜索安装在 Ubuntu 12.04 LTS 上的版本。
对于 Ubuntu 用户,正确的补丁版本也取决于版本。使用此列表查看您的版本的最低安全版本:
我已经对此进行了一段时间的修改,但我不知道为什么这与连字符之外的内容不匹配:
将匹配
代替
我努力了:
我可能在做一些非常明显的错误,请帮忙。
我的逻辑是:
- 检查机器是否具有最低安全版本或更高版本?如果机
- 有安全版本或更高版本,一切正常,什么都不做。
- 如果机器没有安全版本或更高版本,如果机器匹配较低的不安全版本,请执行另一个正则表达式搜索。
- 如果机器匹配较旧/不安全的版本,请执行一些操作。
php - 启用 openssl php 扩展是否会使我的服务器容易受到出血错误的影响?
因此,在客户端机器上,我们安装了 Apache 2.2,它为单个 php 应用程序提供服务。Apache ssl_module 未启用,并且没有通过 https 为应用程序提供服务的相应配置。至于 443 端口,我不确定它是打开还是拒绝连接,但我可以找到。在 php 方面,我知道安装的版本是与当前禁用的易受攻击的 OpenSSL 扩展打包在一起的。
现在,我需要启用 php openssl 扩展,因为我的应用程序需要向仅接受安全连接的外部 API 执行 https 请求(尤其是 flickr)。也许我对整个心脏出血问题有点困惑(或偏执),但我有以下问题:
1/ 启用易受攻击的 php openssl 扩展是否会使我的应用程序和/或服务器容易受到 heartbleed 错误的影响?如何?
2/ apache ssl_module 和 openssl php 扩展之间的相关性(如果有的话)是什么?一个先决条件是另一个,在哪些情况下?
提前致谢