nba比分牌to4什么意思:一个致命的 Redis 命令,导致公司损失 400 万??!

96
Java技术栈
2018.09.26 08:55* 字数 782

nba比分网即时比分 www.yjqcv.com.cn 最近安全事故濒发啊,前几天发生了《顺丰高级运维工程师的删库事件》,今天又看到了 PHP 工程师在线执行了 Redis 危险命令导致某公司损失 400 万。。

什么样的 Redis 命令会有如此威力,造成如此大的损失?

具体消息如下:

据云头条报道,某公司技术部发生 2 起本年度 PO 级特大事故,造成公司资金损失 400 万,原因如下:

由于 PHP 工程师直接操作上线 redis,执行 keys * wxdb(此处省略)cf8* 这样的命令,导致redis锁住,导致 CPU 飙升,引起所有支付链路卡住,等十几秒结束后,所有的请求流量全部挤压到了 rds 数据库中,使数据库产生了雪崩效应,发生了数据库宕机事件。

该公司表示,如再犯类似事故,将直接开除,并表示之后会逐步收回运维部各项权限。

看完这个消息后,我心又一惊,为什么这么低级的问题还在犯?为什么线上的危险命令没有被禁用?这事件报道出来真是觉得很低级。。。

且不说是哪家公司,发生这样的事故,不管是大公司还是小公司,我觉得都不应该,相关负责人应该引咎辞职?。?!

对 Redis 稍微有点使用经验的人都知道线上是不能执行 keys * 相关命令的,虽然其模糊匹配功能使用非常方便也很强大,在小数据量情况下使用没什么问题,数据量大会导致 Redis 锁住及 CPU 飙升,在生产环境建议禁用或者重命名!

还有哪些危险命令?

Redis 的危险命令主要有以下几个:

  • keys

客户端可查询出所有存在的键。

  • flushdb

Delete all the keys of the currently selected DB. This command never fails.

删除 Redis 中当前所在数据库中的所有记录,并且此命令从不会执行失败。

  • flushall

Delete all the keys of all the existing databases, not just the currently selected one. This command never fails.

删除 Redis 中所有数据库中的所有记录,不只是当前所在数据库,并且此命令从不会执行失败。

  • config

客户端可修改 Redis 配置。

怎么禁用或重命名危险命令?

看下 redis.conf 默认配置文件,找到 SECURITY 区域,如以下所示。

################################## SECURITY ###################################

# Require clients to issue AUTH <PASSWORD> before processing any other
# commands.  This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared

# Command renaming.
#
# It is possible to change the name of dangerous commands in a shared
# environment. For instance the CONFIG command may be renamed into something
# hard to guess so that it will still be available for internal-use tools
# but not available for general clients.
#
# Example:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
# rename-command CONFIG ""
#
# Please note that changing the name of commands that are logged into the
# AOF file or transmitted to slaves may cause problems.

看说明,添加 rename-command 配置即可达到安全目的。

1)禁用命令

rename-command KEYS     ""
rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""

2)重命名命令

rename-command KEYS     "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
rename-command FLUSHALL "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
rename-command FLUSHDB  "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
rename-command CONFIG   "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

上面的 XX 可以定义新命令名称,或者用随机字符代替。

经过以上的设置之后,危险命令就不会被客户端执行了。


关注下面的微信公众号,回复 “答案” 获取全套Redis面试题及答案。

image
Redis
Gupao
  • “国风秦韵”走进上合国家 陕西文创品首次海外巡展 2019-02-16
  • “互联网+农产品”不能一哄而上 2019-02-16
  • 天宫二号和神舟十一号载人飞行全景报道 2019-02-16
  • 【学习时刻】人民大学张杰:谋划和推进改革既要“脚踏实地”也要“仰望天空” 2019-02-16
  • 税费“红包”助推高质量发展 2019-02-15
  • 母亲节又送康乃馨?送这样的健康佳品才走心 2019-02-15
  • 传统产业更新 新兴产业做大 2019-02-14
  • 新西塘孔雀城 回家 ——凤凰网房产北京 2019-02-14
  • 守住青山不放松 护好绿水不辞难——在渝全国人大代表聚焦“共抓大保护、不搞大开发”专题调研记略 2019-02-13
  • 靶壕有了“蓝军”,百发百中的“神枪手”练起来 2019-02-13
  • “数码农场”的水稻有何特殊?基因信息可变数据库 2019-02-12
  • 计划经济不是计划两字的意思。计划经济是按照公有经济规律进行搞经济,其核心价值是强大公有制,实现公有(共有)资本在其所有者们进行分配。即谁的资本谁受益,谁投资谁受 2019-02-12
  • 泼皮无赖风水神,尔有脸能告诉大家这个————“腐败分子是天上掉下来的吗?”————跟帖是哪一个主帖下边的跟帖? 2019-02-12
  • 英国球迷要在世界杯上搞事情?俄罗斯笑脸相迎:你来啊 2019-02-11
  • 晓港公园花卉馆南侧场地出租项目 2019-02-11
  • 20| 426| 88| 330| 609| 654| 51| 871| 877| 59|