PHP-memcache的安全性如何解决
memcached的数据是无用户状态,也就是说任何用户都可以向memcache插入数据也可以从memcache中读取数据,这样一来如果有人循环的插入数据网站根本就扛不住,如何解决这个问题呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
memcached的数据是无用户状态,也就是说任何用户都可以向memcache插入数据也可以从memcache中读取数据,这样一来如果有人循环的插入数据网站根本就扛不住,如何解决这个问题呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
一般来说,memcache只是用来做一个数据缓存的存储器而已,数据都是并非热数据,而是用户经常用到、但是不常更新的数据;对于用户用户插入的数据来说,一般是先入库,再进行查询处理。
客户端提交的数据很多是不安全的,如果对于用户提交的数据不经过审核直接放出来的话,容易造成问题,再说,对于用户不间断的数据插入,需要进行限制,这与memcache无关,这需要对网站进行做一些处理:比如,多长时间内不能再次提交数据;提交数据的时候需要填写验证码等等。
现在很多论坛都是有这个限制的。
互联网的应用很难保证绝对的安全,就算是打着安全旗号的某某公司也会有服务器被入侵的事情发生。对于memcache的安全,我们可以做两件事情,能够稍微的防止黑客的入侵或者数据的泄露。
内网访问
最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服务器之间。普遍的服务器都是有两块网卡,一块指向互联网,一块指向内网,那么就让Web服务器通过内网的网卡来访问Memcache服务器,我们Memcache的服务器上启动的时候就监听内网的IP地址和端口,内网间的访问能够有效阻止其他非法的访问。
# memcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid
Memcache服务器端设置监听通过内网的192.168.0.200的ip的11211端口,占用1024MB内存,并且允许最大1024个并发连接
设置防火墙
防火墙是简单有效的方式,如果却是两台服务器都是挂在网的,并且需要通过外网IP来访问Memcache的话,那么可以考虑使用防火墙或者代理程序来过滤非法访问。
一般我们在Linux下可以使用iptables或者FreeBSD下的ipfw来指定一些规则防止一些非法的访问,比如我们可以设置只允许我们的Web服务器来访问我们Memcache服务器,同时阻止其他的访问。
# iptables -F
# iptables -P INPUT DROP
# iptables -A INPUT -p tcp -s 192.168.0.2 —dport 11211 -j ACCEPT
# iptables -A INPUT -p udp -s 192.168.0.2 —dport 11211 -j ACCEPT
上面的iptables规则就是只允许192.168.0.2这台Web服务器对Memcache服务器的访问,能够有效的阻止一些非法访问,相应的也可以增加一些其他的规则来加强安全性,这个可以根据自己的需要来做。