禁用 WebRTC

禁用 WebRTC 防止泄露真实ip,默认禁用 WebRTC,脚本菜单选项用于启用/禁用当前域名的 WebRTC

  1. // ==UserScript==
  2. // @name 禁用 WebRTC
  3. // @version 1.3
  4. // @description 禁用 WebRTC 防止泄露真实ip,默认禁用 WebRTC,脚本菜单选项用于启用/禁用当前域名的 WebRTC
  5. // @author DeepSeek
  6. // @match *://*/*
  7. // @grant GM_setValue
  8. // @grant GM_getValue
  9. // @grant GM_registerMenuCommand
  10. // @run-at document-start
  11. // @namespace https://greasyfork.org/users/452911
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. const enabledSites = GM_getValue('enabledSites', []);
  18. const currentURL = window.location.hostname;
  19.  
  20. // 简化的禁用函数
  21. const disableWebRTC = () => {
  22. ['RTCPeerConnection', 'webkitRTCPeerConnection', 'mozRTCPeerConnection']
  23. .forEach(intf => window[intf] = null);
  24. };
  25.  
  26. // 保留菜单逻辑
  27. GM_registerMenuCommand(
  28. enabledSites.includes(currentURL)
  29. ? '设置当前域名禁用WebRTC'
  30. : '设置当前域名启用WebRTC',
  31. () => {
  32. const newList = enabledSites.includes(currentURL)
  33. ? enabledSites.filter(site => site !== currentURL)
  34. : [...enabledSites, currentURL];
  35. GM_setValue('enabledSites', newList);
  36. location.reload();
  37. }
  38. );
  39.  
  40. // 执行判断
  41. if (!enabledSites.includes(currentURL)) {
  42. disableWebRTC();
  43. }
  44. })();