web安全
编码规范
说明:Web Service客户端和服务器间使用相同的编码方式,是为了防止出现乱码现象,也是实施输入校验的基础。
安全加固:web server响应消息统一采用UTF-8字符编码。
支持IP白名单过滤
说明:防止非法用户登录,需在web server侧添加IP Filter过滤源IP非法的请求。
安全:支持IP Filter实现Web白名单配置,配置项是“jobmanager.web.allow-access-address”,默认情况下只支持YARN用户接入。
安装客户端之后需要将客户端节点IP追加到jobmanager.web.allow-access-address配置项中。
禁止将文件绝对路径发送到客户端
说明:文件绝对路径发送到客户端会暴露服务端的目录结构信息,有助于攻击者遍历了解系统,为攻击者攻击提供帮助。
安全加固:Flink配置文件中所有配置项中如果包含以/开头的,则删掉第一级目录。
同源策略
如果两个URL的协议,主机和端口均相同,则它们同源;如果不同源,默认不能相互访问;除非被访问者在其服务端显示指定访问者的来源。
安全加固:响应头“Access-Control-Allow-Origin”头域默认配置为YARN集群ResourceManager的IP地址,如果源不是来自YARN的,则不能互相访问。
防范敏感信息泄露
带有敏感数据的Web页面都应该禁止缓存,以防止敏感信息泄漏或通过代理服务器上网的用户数据互窜现象。
安全加固:添加“Cache-control”、“Pragma”、“Expires”安全头域,默认值为:“Cache-Control:no-store”,“Pragma :no-cache”,“Expires : 0”。
实现了安全加固,Flink和web server交互的内容将不会被缓存。
防止劫持
由于点击劫持(ClickJacking)和框架盗链都利用到框架技术,所以需要采用安全措施。
安全加固:添加“X-Frame-Options”安全头域,给浏览器提供允许一个页面可否在“iframe”、“frame”或“object”网站中的展现页面的指示,如果默认配置为“X-Frame-Options: DENY”,则确保任何页面都不能被嵌入到别的“iframe”、“frame”或“object”网站中,从而避免了点击劫持 (clickjacking) 的攻击。
对Web Service接口调用记录日志
对“Flink webmonitor restful”接口调用进行日志记录。
安全加固:“access log”支持配置:“jobmanager.web.accesslog.enable”,默认为“true”。且日志保存在单独的“webaccess.log”文件中。
跨站请求(CSRF)伪造防范
在B/S应用中,对于涉及服务器端数据改动(如增加、修改、删除)的操作必须进行跨站请求伪造的防范。跨站请求伪造是一种挟制终端用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
安全加固:现有请求修改的接口有2个post,1个delete,其余均是get请求,非get请求的接口均已删除。
异常处理
应用程序出现异常时,捕获异常,过滤返回给客户端的信息,并在日志中记录详细的错误信息。
安全加固:
- 默认的错误提示页面,进行信息过滤,并在日志中记录详细的错误信息。
- 新加四个配置项,默认配置为FusionInsight提供的跳转URL,错误提示页面跳转到固定配置的URL中,防止暴露不必要的信息。
表1 四个配置项参数介绍 参数
描述
默认值
是否必选配置
jobmanager.web.403-redirect-url
web403页面,访问若遇到403错误,则会重定向到配置的页面。
-
是
jobmanager.web.404-redirect-url
web404页面,访问若遇到404错误,则会重定向到配置的页面。
-
是
jobmanager.web.415-redirect-url
web415页面,访问若遇到415错误,则会重定向到配置的页面。
-
是
jobmanager.web.500-redirect-url
web500页面,访问若遇到500错误,则会重定向到配置的页面。
-
是
HTML5安全
HTML5是下一代的Web开发规范,为开发者提供了许多新的功能并扩展了标签。这些新的标签及功能增加了攻击面,存在被攻击的风险。(例如跨域资源共享、客户端存储、WebWorker、WebRTC、WebSocket等)。
Flink不涉及如客户端存储、WebWorker、WebRTC、WebSocket等安全风险。