• 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,半天后,问他,才知道,后来只好用防火墙,这样才能顺利调用

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

    防火墙使用示例:

    vim /etc/sysconfig/iptables

    #开放指定的端口
    -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 端口号 shutdown

  • 相关阅读:
    函数 对象 入门总结
    js 禁止复制粘贴全选
    CSS3个人盲点总结【总结中..........】
    was设置事务超时
    阿里前DBA的故事
    转型思考
    自卑
    关于BigDecimal的使用
    少睡与吸烟影响IQ
    DB2中OLAP函数使用示例
  • 原文地址:https://www.cnblogs.com/lin3615/p/5690491.html
Copyright © 2020-2023  润新知