iOS上的Safari在POST数据中发送“缓存”表单输入

时间:2012-10-19 18:56:57

标签: ios post safari

我遇到的情况是iOS 6上的Safari(尚未测试早期版本)正在POST数据中发送值,这些值在当前页面中不作为表单输入存在,但是在以前的POST中发送到同一个POST中URL。

以下是该方案:

  1. 用户被发送到带有一些查询参数的登录页面的URL,比方说/login?x=1,y=2
  2. 用户输入错误的凭据,再次显示登录页面,其中xy作为隐藏输入嵌入表单中。
  3. 用户点击Safari中的“后退”按钮,获取/loginxy的值现已丢失,不会作为隐藏表单输入包含在内。
  4. 用户再次输入错误的凭据,这就是奇怪的地方。通过的POST数据包含用户刚输入的用户名和密码,以及以前提交的x值,但不包括y。在此特定的Web应用程序中,x没有y的情况是此特定POST的无效状态,并导致错误。
  5. 我已经确认Safari实际上正在执行GET而不是在步骤3中使用页面的缓存版本。

    为了它的价值,我将Cache-Control响应标头设置为no-cache, no-store, must-revalidate

    更新:我继续向Apple提交了一个错误,以确保他们知道这一点。如果我收到任何反馈,我会在这里发布。

0 个答案:

没有答案