【发布时间】:2011-06-29 03:40:19
【问题描述】:
我在一篇论文中读到了
任何最终用户都可以修改这些值(因为它们源自他的浏览器),但如果 Web 开发人员进行编码,例如,将所有字符转换为 URL 编码(十六进制)或使用特定编码发送GET/POST 参数(例如,带有一些密钥字符串的 base64)必须重新访问攻击向量。
那么,这意味着使用 base 64 和密钥对变量进行编码是一种很好的做法吗? url-encoding是如何实现的?
这有意义吗?我从来没有读过编码变量作为一种保护方式
谢谢
paper 第 5 页
【问题讨论】:
-
我可以看到从服务器到客户端或服务器到服务器的 Base64 编码数据如何在安全/模糊的情况下完成,但是如果你从客户端(又名:浏览器)到服务器然后一切都是不安全的并且恶意攻击者可见/可访问。您可能能够生成哈希或插入一些您使用表单验证/比较用户的位。如果您想防止有人在捕获数据,您应该使用 SSL。
-
base64 编码不使用密钥
-
遗憾的是 Base64 与安全无关。如果您想深入讨论原因和讨论,请随时将其迁移到 security.stackexchange.com,这个问题绝对是热门话题
-
看来作者在这里混合了加密和base64编码。 Base64 没有密钥,简单地使用 base64 并不能避免 SQL 注入攻击,只会让它变得更难一点(即攻击者不能简单地修改浏览器地址行中的 URI,而必须使用一个软件首先将攻击文本编码为base 64)。