Redis 服务在我的主机上可用,如果我为了钱连接它,它只对我可用,因为 Redis 在一个单独的 docker 容器中上升。
但是,如果我将其关闭,那么 Redis 仍然可以免费使用,尽管在服务器范围内。在这里,我连接到服务器范围的 Redis:
$redis = new Redis ();
$redis->connect('127.0.0.1', 6379);
Run Code Online (Sandbox Code Playgroud)
我看到大约有 300,000 条其他人网站的记录。
$allKeys = $redis->keys('*');
echo(count($allKeys)); // ~300000
echo ($allKeys[10000]); // some data of some site
echo ($redis->get($allKeys[10000])); // some data of some site
Run Code Online (Sandbox Code Playgroud)
而且我可以更改每条记录!像这样:
$redis->set($allKeys[10000], 0);
Run Code Online (Sandbox Code Playgroud)
也就是说,有人使用服务器范围的 Redis,我相信用户不知道他们的数据的公共可用性。他刚刚在 WordPress 的某个地方打开了“使用 Redis”复选框。
问题是:托管服务提供商是否对此负责?毕竟,普通用户认为他的数据只存储在他的服务器上,只有他自己可以使用。
技术支持的回应是:一切正常。
但我不这么认为,所以我问。
Nik*_*cic 25
该托管服务提供商应对安全漏洞负责。考虑到 OWASP 的十大 Web 应用程序安全风险,这是一个很少有安全风险的问题:身份验证失效、敏感数据暴露和访问控制失效。
你的下一步是什么取决于你。您应该通知托管服务提供商,托管服务提供商应就可能的数据泄露通知用户。这是一个非常严重的安全和法律问题,因为其他用户可以访问某人可能的私人数据。
参见:https : //owasp.org/www-project-top-ten/
我在网络托管工作。这是不正确的,意味着他们手上有严重的问题!询问经理或主管。如果那无济于事,请移动。
根据您的描述,他们为付费的 Redis 用户提供虚拟用户。他们没有为其他人禁用它,而是允许每个人访问同一个共享池,从而导致您描述的安全漏洞。