0

在我的网站中,用户每天只能修改一次个人信息。脚本方面,我确定它们是否被允许(即检查数据库是否自上次修改以来已经过了 24 小时)以及是否显示表单。

我的问题是,如果没有表格,恶意用户能否设法提交信息?换句话说,如果没有FORM element用户的浏览器应该提交任何数据,对吧?

我害怕的是,如果有人设法发送数据,脚本仍然会处理它并在不应该的时候更改个人信息。

4

3 回答 3

2

当然——这将是一种重放攻击。只要您的资源端点将处理恶意 POST 请求,而不管前面的 GET 的内容如何,​​那么您就很容易受到攻击。

记住:永远不要相信客户。如果您在处理 POST 请求之前进行身份验证授权检查,那么您会没事的。

于 2013-04-08T21:40:26.610 回答
1

是的,如果恶意用户知道接受数据的页面的 url 及其期望的相应属性,即使没有表单,他仍然可以发送数据。然后,他可以轻松地使用该信息创建一个表单并提交数据。

所以你基本上需要在服务器端验证数据。

于 2013-04-08T21:42:17.577 回答
1

是的

例如有人可以使用 curl。

 curl -d profile=value http://www.yoursite.com/profile

您可以使用随表单一起发送的 CSRF 令牌来防止此类攻击。有关更多背景信息,请参阅这篇文章http://shiflett.org/articles/cross-site-request-forgeries

于 2013-04-08T21:43:23.830 回答