摆脱“ vk.com/away.php”或跟随健康人的链接

当您单击Vkontakte上的链接时,您会注意到,与其他社交网络一样,用户首先切换到“安全”链接,此后社交网络决定是否让用户走得更远。 大多数细心的人注意到浏览器的地址栏中出现了半秒的“ vk.com/away.php”,但是,当然,这并不重要。



背景知识


曾经,某个程序员在完成另一个项目后意识到,他沉迷于告诉所有人有关该项目的愿望。 该项目托管在具有唯一IP但没有域名的服务器上。 因此,我急忙在.ddns.net域中创建了一个漂亮的第三级子域,该子域最终被用作链接。

一段时间后返回该帖子后,程序员发现VK存根代替了站点,打开了通知,告知向不安全站点的过渡:



貌似聪明的用户本身有权决定应该访问哪个站点,而不应该去哪个站点,但是Vkontakte的看法有所不同,并且没有任何拐杖就可以跟踪链接。

怎么了


此实现有几个明显的缺点:

  • 无法打开可疑站点。 如上所述,用户无法克服存根。 打开链接的唯一方法是将其复制并粘贴到地址栏中。
  • 减慢链接。 重定向速度取决于ping。 因此,通过大的ping操作,宝贵的生命秒会消失,众所周知,这是不允许的。
  • 转换监控。 此方法有助于收集有关用户操作的信息,这些信息当然使用VK,并在安全链接中添加进行转换的帖子的ID。

免费Django


解决上述所有问题的最佳方法是使用浏览器扩展。 出于明显的原因,该选择取决于Chrome。 在habr上,有一篇很棒文章,专门介绍为Chrome编写扩展程序。

要创建这样的扩展名,我们需要在一个单独的文件夹中创建两个文件:json-Manifest和一个用于监视地址当前url的JavaScript文件。

创建清单文件


我们需要做的主要事情是赋予扩展权限以使用选项卡并分配可执行脚本:

{ "manifest_version": 2, "name": "Run Away From vk.com/away", "version": "1.0", "background": { "scripts": ["background.js"] }, "permissions": ["tabs"], "browser_action": { "default_title": "Run Away From vk.com/away" } } 

创建js文件


一切都很简单:在创建新标签页时调用的情况下,我们添加了对网址的检查,如果它以“ vk.com/away.php ”开头,那么我们将其替换为GET请求中的正确地址:

 chrome.tabs.onCreated.addListener( function (tabId, changeInfo, tab) { chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) { var url = tabs[0].url; if (url.substr(0,23) == "https://vk.com/away.php"){ var last = url.indexOf("&", 0) if(last == -1)last = 1000; var url = decodeURIComponent(url.substr(27, last-27)); chrome.tabs.update({url: url}); } }); }); 

放置扩展


确保两个文件都在同一个文件夹中后,打开Chrome,选择扩展程序标签,然后点击“下载解压缩的扩展程序”。 在打开的窗口中,选择写为“高级”的文件夹,然后单击“收集”。 做完了! 现在,所有链接(例如vk.com/away)都替换为原始链接。

而不是结论


当然,这种存根从数百万个欺诈站点中拯救了很多人,但是,我相信人们自己有权决定是否去不安全的链接。
为了方便起见,我将该项目发布在github上

Source: https://habr.com/ru/post/zh-CN453904/


All Articles