使用 JSONP 的方式共享用户信息,是否存在安全隐患?

2019-10-14 15:25:01 +08:00
 ragnaroks

假设存在应用 App1,App2,App3 与用户数据服务 UserServer, UserServer 已设置只接受来自 App1~3 的请求.

应用的页面中:

<script type="text/javascript" charset="utf-8" src="https://UserServer/FetchUserData/$objectName"></script>

脚本内容:

window.self.objectName={userDataObject};

应用的页面脚本:

this.userId=window.objectName.Id;
this.userAvatarUrl=window.objectName.AvatarUrl;
794 次点击
所在节点    问与答
4 条回复
optional
2019-10-14 15:37:52 +08:00
https 没什么隐患,中间人看不到,放在 url 里唯一要担心的是日志泄露(因为 access log 会打印 url )
virusdefender
2019-10-14 15:40:47 +08:00
如果 referer 验证是正确实现的,那应该问题不大
ragnaroks
2019-10-14 15:54:50 +08:00
@optional 嗯,考虑到这个了,只允许传递接受用的 objectName

@virusdefender 目前就是觉得 referer 可以伪造,可能泄露用户数据给恶意请求
virusdefender
2019-10-14 16:18:06 +08:00
@ragnaroks 那没关系啊,referer 在浏览器上是没法伪造的就够了,如果是脚本发请求,说明拿到了可用的 cookie/token,那本来就没办法。

一个 referer 可能验证错误的例子

example.com.[random]example.com

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

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

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

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

© 2021 V2EX