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

相關文章
相關標籤/搜索