【发布时间】:2010-04-11 06:02:59
【问题描述】:
那么关于将数据发布到不同页面的问题,您如何维护表单的安全性?例如,您有一个成员,他/她试图更改个人设置,而您将成员重定向到
www.domain.com/member/change/member_id
成员通过使用 firebug 或其他方式更改操作来更改值并将数据发布到另一个页面。比如
www.domain.com/member/change/member_id_2
不使用会话如何处理这个问题?
【问题讨论】:
那么关于将数据发布到不同页面的问题,您如何维护表单的安全性?例如,您有一个成员,他/她试图更改个人设置,而您将成员重定向到
www.domain.com/member/change/member_id
成员通过使用 firebug 或其他方式更改操作来更改值并将数据发布到另一个页面。比如
www.domain.com/member/change/member_id_2
不使用会话如何处理这个问题?
【问题讨论】:
当没有服务器端验证时会出现此问题!
因此,解决方案是进行服务器端验证。
【讨论】:
为什么不使用会话状态?它就是为此而设计的。
或者使用嵌入了唯一会话样式 ID 的 cookie 或 URL,这样您就可以将其与特定用户联系起来。
【讨论】:
您如何处理没有会话的成员? 在修改任何内容之前,请检查当前用户是否有权这样做。例如,如果您是用户 #1 并且您的详细信息位于 /members/change/1,则您发布到相同的 url,并使用 firebug 将表单更改为指向 /members/change/2。处理表单时,要检查表单中的userid是否是当前用户的id,如果不是,则显示错误。
【讨论】:
您可以加密身份信息 (member_id) 并将其添加为参数或 url 路径。当请求发布到 member_id 表单时,您可以验证加密的 member_id(它是请求的一部分)是否与 member_id 匹配。
【讨论】: