早期在线银行在缺乏 JavaScript 和 Cookie 的支持下,主要依赖以下两种技术手段来维护用户状态和实现安全交易:
1. URL 查询参数 (URL Query Parameters)
URL 查询参数是将信息附加到 URL 末尾的方式。这些参数以 ? 开头,并使用 & 分隔多个参数。每个参数都由
键值对
组成,例如 ?username=john&sessionid=12345。
在早期在线银行中,用户登录后,服务器可能会在后续页面的 URL 中附加一个唯一的会话 ID。例如:
立即学习
“
Java免费学习笔记(深入)
”;
这样,服务器就可以通过 sessionid 参数识别用户,而无需依赖 Cookie。 每次用户点击链接或提交表单,这个 sessionid 都会被传递,从而维持用户的登录状态。
优点:
简单易实现。
不需要
浏览器
支持 Cookie。
缺点:
URL 长度有限制,无法传递大量数据。
用户容易看到 URL 中的敏感信息,例如会话 ID,存在安全风险。
用户复制粘贴 URL 时,可能会泄露会话信息。
2. 表单隐藏字段 (Hidden Form Fields)
表单隐藏字段是一种在 HTML 表单中隐藏的输入字段。它们不会显示在页面上,但可以用来传递服务器需要的信息。
Comet AI 浏览器
下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。
下载
在早期在线银行中,用户登录后,服务器可以在后续页面的表单中添加一个隐藏字段,例如:
当用户提交表单时,sessionid 也会被发送到服务器。
优点:
比 URL 查询参数更安全,因为用户无法直接看到隐藏字段的内容。
可以传递比 URL 查询参数更多的数据。
缺点:
需要修改每个表单,增加了开发工作量。
如果用户禁用了 JavaScript,可能会导致表单无法正常提交。
安全性注意事项:
无论是使用 URL 查询参数还是表单隐藏字段,早期在线银行都需要采取额外的安全措施来防止会话劫持等攻击。例如:
会话 ID 的生成:
使用足够随机和唯一的算法生成会话 ID,防止被猜测或伪造。
会话超时:
设置会话超时时间,在用户一段时间不活动后自动注销,防止会话被长时间占用。
服务器端验证:
每次收到请求时,都要验证会话 ID 的有效性,确保用户已登录并且有权访问请求的资源。
加密传输:
使用 SSL/TLS 加密所有
敏感数据
的传输,防止中间人攻击。
总结:
在 JavaScript 和 Cookie 出现之前,在线银行主要依靠 URL 查询参数和表单隐藏字段来维护用户状态。这些方法虽然简单易实现,但也存在一些安全风险。为了保障用户资金安全,早期在线银行需要采取额外的安全措施。 随着技术的进步,Cookie 和 JavaScript 逐渐普及,在线银行也开始使用更安全和便捷的技术来管理用户会话和处理交易。 现代的在线银行系统通常采用基于 Cookie 或 Token 的身份验证机制,并结合多因素身份验证等安全措施,为用户提供更安全可靠的在线银行服务。
https://www.examplebank.com/account_summary?sessionid=abcdefg12345