302 跳转参数中的 returnUrl,检测到 returnUrl 开头不是/就强制加一个/是不是就能防止被用于跳转到违规网站了?

2023-02-16 22:19:42 +08:00
 edis0n0
1387 次点击
所在节点    信息安全
9 条回复
hgc81538
2023-02-16 23:19:45 +08:00
edis0n0
2023-02-16 23:21:20 +08:00
@hgc81538 #1 302 到 //scam.com 不会跳到站外
thinkershare
2023-02-16 23:29:54 +08:00
302 跳转为啥会跳到其它地方? 302 的 HTTP Respone 不是你的服务器返回的吗?服务器不能确保跳转地址的有效性??
edis0n0
2023-02-16 23:35:21 +08:00
创建新回复过程中遇到一些问题:
请不要在每一个回复中都包括外链,这看起来像是在 spamming
edis0n0
2023-02-16 23:35:31 +08:00
@thinkershare 例如登录页面的跳转,/login?returnUrl=/example ,就会 302 到 /example ,怕有人利用这个 return 到山寨网站 例如 /login?returnUrl=ht tp://sca m.com 有用户可能只看开头的域名没问题就觉得没问题
rozbo
2023-02-16 23:45:13 +08:00
跳转的时候一般前面要放个中转页,这个中转页可以有 ui(就像某贴吧某乎等),提醒用户即将跳到外站,也可以没有中转页,根据配置的 white list 可以直接进行 block

BTW , 作为系统的开发者,我们往往不要对数据进行修改操作,因为这样会导致后期排查问题的复杂度指数级的提升
GeruzoniAnsasu
2023-02-17 00:00:45 +08:00
后端处理一下 returnUrl 这个参数只对白名单返回 302 不就行了……?
xiangyuecn
2023-02-17 00:31:30 +08:00
// 打头的是有效的含任意主机域名的 url ,只是缺了协议,会自动补全协议

你是 http:,那就跳到 http://🐶
你是 https:,那就跳到 https://🐶

你是 ftp:,那就跳到 ftp://🐶

---

深挖一点,你 302 /path 前面主机、协议都缺了,自动根据当前的 url 进行补全

相对路径补全操作更复杂,还有 /../../../ 套娃😂
piku
2023-02-17 07:48:33 +08:00
如果地址不以 /开头,则加上 /。想了想的确挺靠谱。
但是很多网站是跨域名登录,这种情况就不行了,可能要把整个 url 拆分,校验协议、主机没问题,才能跳到指定的路径。

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

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

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

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

© 2021 V2EX