前端的朋友帮帮忙:纯前端的页面,您是如何处理 X-Frame 等安全问题的?

2018-12-27 18:46:19 +08:00
 CHYK

流程描述如下:

前后端分离,前端全部采用 .ajax 类的请求,提交给后端 api server,然后页面根据后端的 json 数据,绘制图表,显示页面元素。

然后,涉及到至少两个安全问题:

  1. 前端页面如何在没有请求后端时(一上来就加载页面,页面加载完毕才去请求后端),没有后端响应头(response header)的支持下,做好诸如 X-Frame-Options:DenyX-XSS-Protection, X-Content-Type-OptionsContent-Security, Strict-Transport-Secutiry 等等安全问题?

  2. 纯前端利用 .ajax 请求,总是会暴露 url 请求地址 (而后端 api 一般只对 gui 程序 做 token 验证,因为 web 展示就不需要登录,或者说没有认证逻辑,不用登录就可以展示),如何保证不暴露这部分 api 被人恶意利用,或者退一步,不能做到不暴露,那么如何做到只有我的子域名能够请求生效呢?(js 貌似也可以操作请求头,即使 http header 携带 token 也有风险?例如 X-Access-Token: OAUTH-TOKEN X-Client-ID: CLIENT-ID)

(具体的例子,我的 *.abc.com 请求 api.abc.com 才行,别的就不行;貌似用 token 机制,总不能避免 token 存储在客户端本地,而放在客户端那里总无法避免被盗用,就像加密存储在 cookie 中的数据)

初步的想法就是这样了,前端的大才子,大才女们,有任何意见,不妨指导一下?

2296 次点击
所在节点    前端开发
2 条回复
Rhain
2018-12-28 11:55:29 +08:00
2. JWT 了解一下, 我觉得 token 放在客户端本地没问题吧。 主要你服务端做好 token 验证,过期等安全措施就可以。即使登录信息保存在服务端,也得在前端 cookie 中保存对应的标识,比如说 java 开发中 session 的 seesionId 对吧。
CHYK
2018-12-28 21:00:48 +08:00
@Rhain JWT 免去了服务端 session 存储 token 的代价,但是也需要 client 每次带过去 token。仔细思考过后,发现还是要让 client 携带 token。只是纯前端(不借助后端模板引擎)以前没有做过,有些不放心。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/521633

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX