memcached/redis安全性


最近看到说redis,memcached服务器安全的问题,想一想也是,使用这两种服务N年了,因为历史问题吧,工做中基本是以memcached为主,后来才慢慢引入运用redis.
因为memcached是没有安全认证的,不像redis同样,能够配置认证,也就是AUTH,设置密码.
如下说下本身工做中经常使用的安全方法,
先说memcached,
通常本身这些年,都是单台的memcached,因此,直接用内网访问,这个倒方法设置
第二种,也不复制,就是在防火墙上下功能,只给指定的IP访问
ps:其实,自从用上了memcached,就有点丢不了,先说本身的工做经历吧,项目基本是基于MVC思想,
有一次是项目重构,重构前, VC是用PHP的,Model是用C#,这样的问题来了,C#那边基本能用memcached的地方,都用,
包括产品基本信息,产品详情,产品评论,供应商信息,订单的详情。。。。,PHP每次去取数据时,C#那方面说的,基本先从
memcached中拿的,他们从数据库中拿到数据后,放在memcached,这里,他们把memcached和C#放在同一个服务器,
也即放在内网了,后来转移到PHP时,调试了许久,由于在项目重构时,得与以前的数据对应,因此就得调用memcached中的数据对应,
PHP这里有本身的memcached,因此这样压抑了半天,才想起,原来是那边的memcached的访问限制问题
第二次实现项重构时,此次是运维搞的,又花了半天时间,才知道,是怎么回来,项目重构前所有用PHP,重构后用,PHP链接db,而后给数据java,
java再给客户端(app,ios),这里的问题是,java层的数据是基于PHP的,java做中间层,同时,app,ios有时候得调用PHP中的接口,也就是wap页面,这样问题又来了
java,php,wap,app/ios都是放在不一样的服务器,PHP接口也放在内网的memcached,wap中也有memcached,也是内网中,app/ios的token,是保存在php中的memcached的,
wap中的memcached是在wap,运维搞了两台memcached,半天后,问他,才知道,后来只好用防火墙,这样才能顺利调用php

利用memcached是项目历史的缘由,你们都习惯了,因此不想换,到后来,涉及到新的功能后,和领导商量,以前的历史就历史吧,
如今新功能,利用redis,memcached能作的,redis能够胜任,可是redis的,memcached好多没法作到,好比持久化,多种数据类型.
因为项目后期会大力推广,因此,把以前的session相关信息不放数据库,放内存了,也许是历史缘由,没有放在redis,只放memcached,
当本身做产品业务功能时,对商品评论数,浏览数,收藏数,因此此时本身力推redis,这样再做定时入库处理,即用消息队列来实现,方便无压力,又安全.java

防火墙使用示例:ios

vim /etc/sysconfig/iptablesredis

#开放指定的端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 端口号 -j ACCEPT
#禁止端口号
-I INPUT -p tcp --dport 端口号 -j DROP
#给指定的IP开放指定的端口
-I INPUT -s ip地址 -p tcp --dport 端口号 -j ACCEPT
-I INPUT -s ip地址 -p tcp --dport 端口号 -j ACCEPT
#若是是容许指定的IP访问指定的端口,则先禁止此端口,而后再开放给指定的ip,顺序不能乱数据库

本地链接redis服务器
redis-cli -h 主机名 -p 端口号
中止
redis-cli -h 主机名 -p 端口号 shutdownvim

相关文章
相关标签/搜索