【问题标题】:POST to password protected URL?发布到受密码保护的 URL?
【发布时间】:2011-04-27 15:19:18
【问题描述】:

我正在开展一个项目,该项目需要我将一些数据发布到需要用户名和密码才能访问的 url。如何构建 URL 以使其自动登录系统?

$.ajax({
    url: "https://xxxxxxx",
    type: "POST",
    data: "___PUT_BODY___="+file+"&file="+time,
})

【问题讨论】:

  • 它是使用 HTTP Basic 身份验证还是基于自定义和 HTML 的东西?

标签: php jquery user-interface post


【解决方案1】:

如果页面使用“基本”HTTP 身份验证(浏览器打开一个小对话框窗口询问用户名和密码的那种),您可以简单地这样做:

https://username:password@www.example.com/

如果网站在页面某处嵌入了登录表单,则登录信息不会出现在 URL 中。您必须模拟提交该表单(通过专门为登录生成类似的 AJAX 请求)。

【讨论】:

  • 我同意 votey,但我的 2 美分是我倾向于对我的安全页面使用自定义锁定,并使用唯一令牌来授予必要的访问权限。所以我的帖子将数据作为 {file: file, token:token} ,其中 url 是一个锁定绕过,它检查令牌和引用站点以验证访问。听起来很复杂,但事实并非如此。您可以使用基本会话和登录表单来完成此操作。可能需要 20 分钟来设置。
  • "如果服务器在提供响应之前执行 HTTP 身份验证,则可以通过用户名和密码选项发送用户名和密码对。"
【解决方案2】:

Read the funny manual

另外,不要让你的查询字符串像它在 URI 栏中出现的那样,让它成为一个对象。 此外,分号放在该语句的末尾。

$.ajax({
    url: "https://example.com",
    type: "POST",
    data: {
            "___PUT_BODY___="   : file, 
            "&file="            : time
          },
    password : "theP4s$w0rD!",
    username : "Bob's big bad world of HTTP Auth"

});

【讨论】:

    【解决方案3】:

    如果您发送的页面是公开的,或者如果用户名/密码必须保持私密,您应该重新考虑将您的用户名/密码放在页面中。

    您可以发布到服务器上的本地页面,然后可以通过 curl 等方式将数据发送到接收服务器。

    您还可以使用 curl 进行所需的任何类型的身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      相关资源
      最近更新 更多