更新时间:2022-12-14 GMT+08:00

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等)。

安全加固:添加“Access-Control-Allow-Origin”配置,如运用到跨域资源共享功能,可对HTTP响应头的“Access-Control-Allow-Origin”属性进行控制。

Flink不涉及如客户端存储、WebWorker、WebRTC、WebSocket等安全风险。