面试题答案
一键面试- 命令注入风险:
- 原因:如果在Lua脚本中直接拼接用户输入的内容来构造Redis命令,恶意用户可通过输入特殊字符改变命令逻辑,例如在拼接SET命令时,恶意用户输入 ";DEL somekey",可能导致意外删除数据。
- 数据泄露风险:
- 原因:若Lua脚本在处理数据时,没有恰当的权限控制,可能会将敏感数据暴露。例如脚本本应只处理普通用户数据,但因权限设置宽泛,导致能够访问管理员相关数据。
- 资源耗尽风险:
- 原因:恶意构造的Lua脚本可能包含无限循环或大量复杂计算,在Redis Lua环境中执行时,会占用大量CPU资源,导致Redis服务响应缓慢甚至无法响应其他正常请求。
- 脚本篡改风险:
- 原因:如果Redis Lua脚本存储在不安全的环境,没有合适的版本控制和访问控制,脚本可能被恶意篡改,改变原本的业务逻辑,造成不可预估的后果。