破解 ProjectSyndicate 的订阅限制
13 Jan 2023 by LelouchHe
缘由
Project Syndicate 也是我很久之前发现的一个政治类网站,我记得当时还没有订阅限制,但现在有了,对于很多信息量很大的板块,都存在限制,令人十分不爽
但人家的内容质量过硬,我也不好说什么,而且100刀的年费,确实不贵
我只是好奇心迸发,在上期破解了 NR 之后,又想再尝试一番.
本次尝试只针对杂志,其他内容大同小异
分析
普通未订阅的用户,貌似一段时间之内,只能免费看一篇文章,但目录是完全免费的
当我们第二次点击链接进去某文章时,会自动被重定向到另一个基本一样的链接,二者唯一的不同,是 URL 之后会有 ?barrier=accesspaylog
的额外参数.有了这个参数,文章就会被截断
这个是什么时候决定要添加呢?
cookie
我曾一度认为这个是 cookie 的问题.第一次请求文章时,服务器发回某个 cookie,标记上某用户已经看过一篇.然后在第二次时,服务器发现请求中有这个 cookie,就直接重定向
为了验证这个想法,我观察了访问的网络通信,确实也发现一个可疑的 cookie __session_cookie__regwallTrialExpired=true; expires=Sat, 14 Jan 2023 05:55:15 GMT; path=/; secure; httponly
.看名字很像是标记免费使用已经过期的意思
理论上说,如果真的是 cookie 的锅,那么完全可以用匿名模式或者禁用/清理 cookie 的方式来绕过.我也是这样尝试的,但结果却还是面临限制
可见 PS 的原理比这个更复杂
User-Agent
既然浏览器这边没戏,我猜想它的跟踪和禁用应该是发生在服务器的.那服务器是怎么判断的呢?
我尝试性的用另一个浏览器打开,发现还是能看一篇.这么说来,貌似每个浏览器都能看一篇.这浏览器之间有什么区别的?一个显然的地方就是 User-Agent
,每个浏览器都是用这个来区分的
服务端那边,很有可能是利用 IP 和 User-Agent
的组合来跟踪用户的User-Agent
相对 IP, User-Agent
更容易修改,所以为了实验这个想法,我就开始手动设置,结果非常好,果然绕过了订阅限制
看来 PS 的服务端果然是利用这个来跟踪用户,所以可以完全忽视浏览器这边的 cookie
总结
PS 的机制看上去比 NR 要靠谱很多,至少是从服务端处进行限制,破解只能当一个黑盒进行尝试.但所幸也不是特别难
有了以上的分析,应该就很容易做出对应的 recipe,而且也比较容易扩展到 PS 的其他内容去
哈哈,破解真的是个有趣的过程.不过还是提醒大家,支持正版,支持付费!