painless脚本安全
一、参考
二、不要这样做
2.1 非 root 权限执行
Do not run as root
不要使用root
权限运行脚本
2.2 不要暴露 ES 原生接口
Do not expose Elasticsearch directly to users
不要直接将用户的输入,当作脚本的原始内容,需要添加应用层,当作中间层,校验输入内容的合法性,应用层直接与数据库交互
2.3 不要暴露 ES 到外网
Do not expose Elasticsearch directly to the Internet
三、可配置参数
3.1 script.allowed_types
可配置的选项为 inline, stored
3.2 script.allowed_contexts
3.3 默认配置
# 默认9个有关script的选项
"script.allowed_contexts" : [ ],
"script.allowed_types" : [
"stored",
"inline"
],
"script.cache.expire" : "0ms",
"script.cache.max_size" : "100",
"script.disable_max_compilations_rate" : "false",
"script.max_compilations_rate" : "use-context",
"script.max_size_in_bytes" : "65535",
"script.painless.regex.enabled" : "limited",
"script.painless.regex.limit-factor" : "6",