我使用的共享主机启用了梅卡奇,我搜索了一些论坛,在共享托管环境中使用梅卡奇会导致安全问题,比如查看其他用户的缓存、编辑缓存等等。但是日期早在2013年,所以我有点担心,在共享托管环境中使用梅卡奇是否仍然不安全?
而且,我在php.ini中没有访问权限,所以SASL身份验证对我不起作用。有办法安全地使用梅卡奇吗?如果没有,是否还有其他选项可供我使用缓存数据结果?
发布于 2016-10-13 09:22:51
嗯,memcached本身没有任何权限配置(只是侦听套接字的权限)。您只需启动守护进程,发送给它的所有内存对象都将根据键存储。发送或检索数据的用户或机器之间没有区别,甚至可以获得密钥冲突。
Memcached被设计成简单的小程序,迫使应用程序层考虑其他一切。并最初设计为在与应用程序相同的机器上运行。自2013年以来,这一设计没有改变。
所有这些都表明,如果宿主提供商在直接连接到memcached的另一台机器上为您提供一个套接字,那么您应该立即停止使用该托管提供商。这完全是不明智的。使用memcached的主机提供者将为每个用户运行不同的memcached守护进程(整个守护进程只是几千字节),使用反向代理(带有身份验证),或者构建一个不真正运行memcached的memcached兼容缓存。
如果您查看AWS是做什么的:
Memcached层是AWS OpsWorks层,它为充当Memcached服务器的实例提供了蓝图。
也就是说,它们的弹性缓存可以用作memcached缓存,但它不是监听套接字的memcached守护进程。并且(从同一篇文章中)您可以看到缓存中存在身份验证:
如果您选择不自动将内置的AWS OpsWorks安全组与您的层关联,则会出现自定义安全组。必须指定要与该层关联的安全组。有关更多信息,请参见创建新堆栈。
因此,在托管环境中使用memcached作为任何网络解决方案都是不明智的。但是大多数广告memcached的托管环境并没有真正使用memcached,它们在其中放置了一个层来添加权限。
发布于 2016-10-13 12:08:49
如果您没有配置它,那么您就无法知道它是否安全。不管我们说的是memcached,一个Oracle数据库,opensshd.
正如grochmal所说,memcache中没有内在的访问控制机制。因此,对于服务提供者来说,实现所希望的分区类型的空间非常小。
加密存储在memcache中的所有数据将解决泄漏问题(但会造成密钥管理问题)。它不能防止对数据的损坏。
是否还有其他选项可供我使用高速缓存数据结果
我们不知道主机是什么,也不知道您对安全的要求是什么。如果“数据”是mysql结果集,则使用mysql的缓存。如果它的JSON数据是通过HTTP获取的,那么您可以使用前向代理。如果它缓存自己页面的输出,那么反向代理.
https://security.stackexchange.com/questions/139629
复制相似问题