我正在使用 intraweb,它为我提供了 3 个传递参数的选项。
?
在 url 中使用参数- 使用隐藏字段
- 使用 cookie
就我的代码而言,我选择哪个选项并不重要,框架将我从中抽象出来。
但是,哪一个更安全,不会被用户篡改?
我正在使用 intraweb,它为我提供了 3 个传递参数的选项。
?
在 url 中使用参数就我的代码而言,我选择哪个选项并不重要,框架将我从中抽象出来。
但是,哪一个更安全,不会被用户篡改?
在 URL 参数中传递数据可能会超出 URL 的长度限制,并且可能会干扰(或成为一项功能!)书签。作为 cookie 传递可能会导致用户关闭 cookie(或客户端不支持 cookie)。作为隐藏字段传递是最便携的。
这些方法本身都不提供任何级别的安全性。
编辑: lance 指出的优秀文章中的一个建议是将您的敏感数据存储在服务器上,并且只将 cookie 传输到客户端。这是cookie一词的另一种用法,应该更恰当地称为session id,它可以使用您正在考虑的三种方法中的任何一种在服务器和客户端之间来回传输。
它们都可以使用免费提供的工具轻松复制/修改,所以我会说使用最适合您的应用程序的任何一个 - 它们在安全性方面是等效的,它们都不应该被信任。
考虑使用服务器端发布的加密哈希来防止篡改您选择的任何选项。
从安全的角度来看,它们都应该在服务器上被同等对待。仅仅因为一个变量是通过鸽子传输而不是 GET 传递的,这并不意味着它是安全的。它仍然来自邪恶的用户。
因此,请确保对所有这些都使用完全相同的安全机制。
它们都不是安全的(尽管尚不清楚您的确切含义是哪种安全性)。
一个明显的区别当然是 url 参数始终可见 - 如果用户创建书签或将 URL 发送给某人,则该参数随之而来。
对于已经说过的内容,我想补充一点,当您在 url 中有参数时,它让用户创建书签 - http://bikes.com/catalog.aspx?category=downill [不是真实地址]。因此,在某些情况下,这可能比其他两个选项更好。