面试题答案
一键面试- 脚本注入漏洞
- 产生原因:如果在构建EVALSHA命令时,对传入脚本的参数处理不当,恶意用户可能会构造恶意脚本片段。例如,原本的脚本期望传入一个简单的键名作为参数,但攻击者传入包含恶意Lua代码的字符串,由于Redis在执行脚本时会将参数和脚本一起解析执行,就可能导致恶意代码被执行。这类似于SQL注入,都是因为对输入数据未进行充分的验证和过滤。
- 脚本未加载漏洞
- 产生原因:EVALSHA命令是通过脚本的SHA1摘要来执行脚本的。如果在执行EVALSHA命令前,该摘要对应的脚本并没有被成功加载到Redis服务器(例如因为网络问题、加载脚本的代码有逻辑错误等),Redis会返回错误。然而,在实际应用中,如果没有对这种错误情况进行妥善处理,可能会导致业务逻辑错误,影响系统的正常运行。例如,应用程序依赖于脚本的执行来完成某些关键数据的处理,而脚本未加载导致命令执行失败,可能会导致数据处理不完整或错误。