Java 业务开发常见错误 100 例
朱晔
贝壳金服资深架构师
52944 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
代码篇 (23讲)
Java 业务开发常见错误 100 例
15
15
1.0x
00:00/00:00
登录|注册

答疑篇:安全篇思考题答案合集

HTTPS双向认证
对账
XSS
SQL注入
客户端数据相关的漏洞
敏感数据
安全兜底
数据源头
思考题集锦

该思维导图由 AI 生成,仅供参考

你好,我是朱晔。
今天,我们继续一起分析这门课“安全篇”模块的第 27~30 讲的课后思考题。这些题目涉及了数据源头、安全兜底、数据和代码、敏感数据相关的 4 大知识点。
接下来,我们就一一具体分析吧。

27 | 数据源头:任何客户端的东西都不可信任

问题 1:在讲述用户标识不能从客户端获取这个要点的时候,我提到开发同学可能会因为用户信息未打通而通过前端来传用户 ID。那我们有什么好办法,来打通不同的系统甚至不同网站的用户标识吗?
答:打通用户在不同系统之间的登录,大致有以下三种方案。
第一种,把用户身份放在统一的服务端,每一个系统都需要到这个服务端来做登录状态的确认,确认后在自己网站的 Cookie 中保存会话,这就是单点登录的做法。这种方案要求所有关联系统都对接一套中央认证服务器(中央保存用户会话),在未登录的时候跳转到中央认证服务器进行登录或登录状态确认。因此,这种方案适合一个公司内部的不同域名下的网站。
第二种,把用户身份信息直接放在 Token 中,在客户端任意传递,Token 由服务端进行校验(如果共享密钥话,甚至不需要同一个服务端进行校验),无需采用中央认证服务器,相对比较松耦合,典型的标准是 JWT。这种方案适合异构系统的跨系统用户认证打通,而且相比单点登录的方案,用户体验会更好一些。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文涵盖了多个技术领域,包括安全防护、系统监控和异常处理等方面。首先,讨论了打通不同系统用户标识的三种方案,包括单点登录、JWT和OAuth 2.0的授权码模式。其次,针对开放重定向问题提出了三种代码层面的预防方法。接着,介绍了及时发现系统被攻击或利用的监控手段和对账中发现调用量低于对方系统记录的问题的解决方法。最后,讨论了SQL注入中的联合查询注入和FreeMarker模板引擎中的HTML转义处理方法。文章还涉及了日志脱敏和HTTPS双向认证的相关思路。总体而言,本文内容丰富,对于技术人员具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Java 业务开发常见错误 100 例》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 鲁鸣
    重定向最好是服务端做,并且基于白名单进行
    2021-01-17
    2
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部