V2EX多页面操作支持(解决防CSRF策略token更新导致旧页面操作无效问题)

通过localStorage同步最新的csrfToken,用于所有打开页面内收藏、感谢等操作(并非直接使用在Cookies中仍然可以避免CSRF攻击隐患)

  1. // ==UserScript==
  2. // @name V2EX多页面操作支持(解决防CSRF策略token更新导致旧页面操作无效问题)
  3. // @namespace http://zhangbohun.github.io/
  4. // @version 0.1
  5. // @description 通过localStorage同步最新的csrfToken,用于所有打开页面内收藏、感谢等操作(并非直接使用在Cookies中仍然可以避免CSRF攻击隐患)
  6. // @author zhangbohun
  7. // @match *://*.v2ex.com/*
  8. // @grant none
  9. // @run-at document-end
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. if(typeof csrfToken != "undefined")//只在csrfToken更新的页面生效
  16. {
  17. //同步更新csrfToken到localStorage
  18. localStorage.csrfToken=csrfToken;
  19. //修改函数中固定的csrfToken字符串从localStorage中动态获取,V站没有js动态绑定的操作函数,直接替换dom方便些
  20. var node = document.querySelector("body");
  21. node.innerHTML=node.innerHTML.replace(new RegExp("\'"+csrfToken+"\'", "g"), "localStorage.csrfToken");
  22.  
  23. //收藏操作
  24. var url=document.querySelector(".topic_buttons>a").href;
  25. document.querySelector(".topic_buttons>a").href="javascript:void(0)";
  26. document.querySelector(".topic_buttons>a").onclick=function(){
  27. window.location.href=url.split('=')[0]+'='+ localStorage.csrfToken;
  28. }
  29. }
  30. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址