在window.open

时间:2017-10-08 22:56:34

标签: javascript cookies

我想打开一个php页面并动态注入一个cookie,因为它使用它作为id来触发ajax调用。

挑战是我不“拥有”或访问php页面。

1 个答案:

答案 0 :(得分:1)

在JS中设置cookie时,这个过程并不像编写document.cookie="'name': 'value'"那么简单。实际上,有很多脚本都在努力简化在客户端设置cookie的过程。我发现Here是一个答案,可以帮助您获得简单版本,而无需将任何资源扩展到调用外部脚本。

JS中的cookie表单如下: <name>=<value>; expires=Mon, 16 Oct 2017 01:11:29 GMT; path=/

请注意包含expirespath。在客户端声明cookie时,这些是必需的。

现在,要记住的一件事是,如果页面向其他服务器发出JSON请求,则无效。这是因为Cookie会跟随Same-Origin Policy以使Cookie失窃,而其他相关的恶意代码更难以成功启动。

为简化起见,我的意思是,如果您转到example.com但服务器从ajax.example.com提供资源且Cookie用于ajax.example.com,则您将无法操作这些Cookie通过javascript除非您可以将HTML写入ajax.example.com域的某些部分。

在没有服务器端干扰的情况下设置cookie的能力通常被认为是一种冒险的安全举措,有些人可能会认为用户提交的脚本篡改cookie是可疑的,甚至可能试图破解系统的安全性。我强烈鼓励您尝试更改后端,以便通过某种GET或POST数据传递AJAX呼叫ID。要么是这样,要么让后端完全管理AJAX调用ID,甚至可能将一组合理的ID传递给页面以供脚本使用(例如var ajaxCallIds = [1337, 256, 11, 99]。)

解决代码问题的方法取决于您,但请记住,很少有情况需要客户端操作服务器端应用程序代码设置和使用的cookie。