我的网站上有一个登录表单,用户可以在登录后搜索内容。
有一个第三方移动应用程序允许我的用户通过我的网站在signin.aspx页面上提交表单来登录。
我的问题是如何判断某个表单是从第三方而不是从我的网站提交的?
答案 0 :(得分:1)
正如Claudio所说,你无法可靠地使用“referer”值。价值可能是欺骗性的。更安全的方法是使用CSRF令牌或类似的东西。
例如,您可以在隐藏的表单元素中包含ASP.NET会话ID。然后,在提交表单时,将表单元素的值与用户的会话ID进行比较。如果它们不匹配,则表单提交不是来自您的网站。
答案 1 :(得分:0)
你有referer HTTP标头,但不幸的是,这不是100%准确,在某些情况下,它可以在请求的中间更改。
您可以在本地表单中添加额外参数。如果参数不存在,则帖子来自第三方网站。