我们希望将Memcached集成到我们的基础架构中,但在我们做之前有安全问题。我们运行多个平台,包括ASP.NET和ColdFusion,并且有许多应用程序开发人员在不同平台上处理许多小应用程序。关注的是:
App A将项目“dog”放入缓存中。
App B读取项目“dog”(或者更糟:App B更新项目“dog”)
发生这种情况后,App A要么检索错误信息,要么已查看其信息,即“被盗”。我们想要做的是使每个应用程序只能与自己的沙箱交互,并且不会干扰或读取其他应用程序的数据。
这可能吗?感谢。
答案 0 :(得分:1)
在您的基础架构上创建多个memcached实例,并为每个实例提供不同的端口。通过这种方式,您可以隔离自己 - 但这不是您想要做的事情,您将不得不拆分可用的内存资源。
你应该能够使用“惯例” - 即使用Anon的建议。
我的建议是:任何需要保护的东西都不应该在memcached实例中。将此与anon的建议和您所做的最佳实践一起使用。
答案 1 :(得分:0)
如果您需要篡改内容的证明或缓存中的项目隐私,您必须在应用程序中实现它(即在上传之前签名或加密缓存的内容),但您需要支付签名/启动的费用每次缓存访问的签名和/或加密/解密,以及配置执行这些操作所需密钥的相当复杂的问题。
答案 2 :(得分:0)
我们随SASL auth一起提供的最后几个版本,以防止在不受信任的环境中进行未经授权的访问。
在开发树中,我们拥有可插拔的存储引擎支持,允许您执行有趣的操作,例如在应用程序之间隔离缓存。例如,我有一个部署的实例,其中有许多用户无法看到彼此的数据。 User1可以缓存dog
,User2可以缓存dog
,但不会干扰。