我正在尝试在此域上运行curl:
curl 'http://www.zone-h.org/'
当我尝试单独运行该命令时,它没有像我希望的那样获取页面的内容。
当我像这样运行curl时,它确实可以正常工作:
curl 'http://www.zone-h.org/archive' -H 'Cookie: ZH=9ad2c41c5fe02ef34a30a22c1902b4bf'
这适用于我的本地桌面,因为我能够在浏览器中访问该网站并获取 cookie 字符串。但是,我尝试在我的 VPS 上运行它,但它无法正常工作。我猜这是因为我的 IP 不同或类似的原因。
我不太确定是什么原因造成的,但我认为是这里的文件:
http://www.zone-h.org/z.js
我怎样才能找到我应该在我的 VPS 上设置 cookie 的内容,以便我可以在那里运行此命令?有没有办法弄清楚 cookie 字符串是如何生成的或为我的 VPS 获取正确的 cookie?
最佳答案
首先,设置 cookie 的 javascript 实际上位于您为主 URL 获取的初始正文中。 z.js
文件提供了一堆 javascript 辅助函数,尽管这些函数由主 javascript 代码调用。
要学习的关键逻辑是这一部分(我将线分开以便在这里看起来更好):
document.cookie="ZH="+toHex(slowAES.decrypt(c,2,a,b))+
"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";
看到了吗?它使用在原始主体中设置的 a、b 和 c 变量的输入来创建包含 AES 解密内容的 cookie。如果您确实愿意,您可以用另一种语言编写自己的逻辑来模仿它。
但还要看到,它为此 ZH cookie 设置了 2037 年的到期日期。因此,您可能可以在未来很多年中重复使用您所拥有的 cookie,甚至无需计算新的 cookie(除非它再次运行此脚本)。
关于javascript - cookie是由javascript生成的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34428718/