所以基本上你需要连接到memcached服务器的是主机名和端口。鉴于这意味着任何人都可以连接到我的服务器并获取我的信息,这是一件坏事。我读到我可以实现SASL以获取某种凭据但我找不到如何使用SASL为初学者安装Memcached 文章,我想知道我是否可以配置它以便只有一定的IP可以连接吗?
我在服务器上的访问权限很少,因为我正在使用最便宜的计划进行共享托管。
答案 0 :(得分:1)
如果您的应用程序在memcached所在的同一服务器上运行,则可以使用套接字连接而不是tcp:
memcached -s /tmp/memcached.socket -m 256 -u nobody
然后你可以从你的应用程序(php版本)访问memcached:
$memcache = new Memcached;
$memcache->addServer('unix:///tmp/memcached.socket',0);
顺便说一句,使用套接字而不是标准的tcp连接,memcache会运行得更快。
如果您已在单独的服务器上安装了内存缓存,则可以使用iptables过滤到memcached进程的传入连接。或者任何其他防火墙。
答案 1 :(得分:0)
Memcached仅支持通过SASL进行身份验证,并且仅在使用SASL支持进行编译时才支持。这意味着您可能无法在该计算机上自行安装。
但这甚至不重要:即使您的memached支持SASL,它仍然会授予经过身份验证的用户访问所有数据的权限。 Memcached不会对用户“分区”数据。 (这至少是我阅读the documentation的方式。如果有人发现相反的证据,请纠正我。)
因此,您应该担心的是同一台服务器上的其他用户可以访问Memcached。他们可以读取和修改您存储在本地Memcache实例中的任何内容 - 无论是否为SASL。
顺便说一下,正确配置的Memcached只会侦听本地接口。因此,您不必担心可以从外部访问它。