我想打开一个php页面并动态注入一个cookie,因为它使用它作为id来触发ajax调用。
挑战是我不“拥有”或访问php页面。
答案 0 :(得分:1)
在JS中设置cookie时,这个过程并不像编写document.cookie="'name': 'value'"
那么简单。实际上,有很多脚本都在努力简化在客户端设置cookie的过程。我发现Here是一个答案,可以帮助您获得简单版本,而无需将任何资源扩展到调用外部脚本。
JS中的cookie表单如下:
<name>=<value>; expires=Mon, 16 Oct 2017 01:11:29 GMT; path=/
请注意包含expires
和path
。在客户端声明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。