【问题标题】:Condition for retrieving Cookie through AJAX calls通过 AJAX 调用检索 Cookie 的条件
【发布时间】:2011-03-01 22:47:09
【问题描述】:

我是 cookie 的新手。但我想我的 PHP 代码可能做错了。在登录过程中,我有一个验证登录脚本来验证用户。如果用户通过它,脚本将自动设置一个 cookie,setcookie("userid", $row["profileId"], time() + 24*3600*14);,并且该脚本还使用header("Location: ../../index.php"); 将用户重定向到主页当我在谷歌浏览器的开发人员工具中查看网络选项卡时,我可以看到仅用于验证脚本的 cookie,包括请求 cookie 和响应 cookie。但是为什么在所有其他 AJAX 请求上看不到这一点?我根本无法检索 cookie,我做错了什么?我知道我犯了一些常见的错误

我可以检索的唯一 Cookie 是会话 cookie。我需要在 php 中使用 $_COOKIE 检索 cookie。我使用 localhost 作为域

【问题讨论】:

  • 不管是什么问题,您都不会依赖此 cookie 进行用户身份验证,对吧?这将是一个主要的安全漏洞,因为 cookie 可以在客户端设置。如果设置 cookie {userid: 1} 赋予用户管理员权限,请重新考虑您的方法。

标签: php ajax cookies


【解决方案1】:

Cookie 是全自动的。你不需要在 js 中抓取它们来发送它们。 ajax 调用会自动在请求中发送它们,您甚至可以设置更多的响应。但是您必须在同一个域中才能使任何这些工作。出于安全考虑,已禁用跨域 cookie。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 我不是告诉他们在服务器端设置它们在客户端。我在 w3schools 学到了这一点
    • 它们仍然是客户端,所以如果你想用 js 访问它们,请执行上面的操作而不是 ajax
    • 但我需要在服务器端访问它们。所以我必须先在 javascript 文档中检索它们,然后将它们作为 AJAX 调用发送到标题中?我如何完成我还没有找到任何好的教程呢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多