流程描述如下:
前后端分离,前端全部采用 .ajax
类的请求,提交给后端 api server,然后页面根据后端的 json 数据,绘制图表,显示页面元素。
然后,涉及到至少两个安全问题:
前端页面如何在没有请求后端时(一上来就加载页面,页面加载完毕才去请求后端),没有后端响应头(response header)的支持下,做好诸如 X-Frame-Options:Deny
, X-XSS-Protection
, X-Content-Type-Options
, Content-Security
, Strict-Transport-Secutiry
等等安全问题?
纯前端利用 .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 中的数据)
初步的想法就是这样了,前端的大才子,大才女们,有任何意见,不妨指导一下?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.