0

我正在实现一个消息系统(私人消息,如果你愿意的话),我希望能够通过文本链接显示用户拥有的消息列表,所以我不需要按钮来打开它。message_id(数据库中的唯一值)将通过 URL 传递。(类似于 www.example.com/message/view/16)。假设我检查以确保用户 ID 的会话与发送消息的用户 ID 匹配,这样可以吗?为了更安全,我可以附加一个随机数并将其设置为会话,然后在查看时检查它。

我应该忘记这个想法并坚持使用提交按钮来查看消息吗?

4

2 回答 2

4

POST 请求不会比 GET 请求提供更多安全性:任何半体面的 Web 调试工具都可以伪造 POST 请求。你永远不应该相信用户输入的数据。始终仔细检查授权以确保安全!

也就是说,GET请求语义与您在此处尝试执行的操作相匹配

HTTP 标准说GET请求应该是可重复的,没有任何不重要的后果。例如,使用 GET 请求查看数据就足够了(并且可能做一些小事情,比如增加一个计数器,因为这些都是非常微不足道的后果)。事实上,GETHEAD是被认为是“安全”的两种请求方法。

另一方面,POST请求预计会产生重要的后果,例如发送消息或下订单。您不想意外执行两次的东西。如今,大多数浏览器也尊重这一点,在重新加载页面时警告用户会导致POST再次执行请求。

于 2012-11-21T01:02:43.493 回答
1

使用 GET 值查看消息是更好的主意,因为假设用户保持登录状态,这将允许他们为消息添加书签等。

于 2012-11-21T01:04:12.420 回答