在我的网站中,用户每天只能修改一次个人信息。脚本方面,我确定是否允许它们(即检查数据库是否自上次修改后24小时)以及是否显示表单。
我的问题是,如果没有表单,恶意用户是否可以设置提交信息?换句话说,如果没有FORM element
用户的浏览器不应该提交任何数据,对吗?
我担心的是,如果有人设法发送数据,脚本仍然会处理它并更改个人信息当它不应该。
答案 0 :(得分:2)
当然 - 这将是一种重播攻击。只要您的资源端点处理恶意POST请求,无论前面的GET内容如何,您都会受到攻击。
请记住:从不信任客户。如果您在处理POST请求之前执行身份验证和授权检查,那么您将没事。
答案 1 :(得分:1)
是的,如果恶意用户知道接受数据的页面的网址及其预期的相应属性,则即使没有表单,恶意用户仍然可以发送数据。然后,他可以轻松地创建包含该信息的表单并提交数据。
所以你基本上需要在服务器端验证数据。
答案 2 :(得分:1)
例如有人可以使用curl。
curl -d profile=value http://www.yoursite.com/profile
您可以使用随表单一起发送的CSRF令牌来阻止此类攻击。 有关更多背景信息,请参阅此文章http://shiflett.org/articles/cross-site-request-forgeries。