Ao clicar nos links postados no VKontakte, pode-se notar que, assim como em outras redes sociais, inicialmente ocorre um redirecionamento para um link 'seguro', após o qual a rede social decide se deve ou não permitir que o usuário continue. A maioria das pessoas atentas percebeu a breve aparição de 'vk.com/away.php' na barra de endereços do navegador, mas, claro, não atribuiu a isso muita importância.

Antecedentes
Certa vez, um programador, ao finalizar mais um projeto, percebeu que estava obcecado pelo desejo de compartilhá-lo com todos. O projeto estava hospedado em um servidor com um IP único, mas sem nome de domínio. Por isso, em um impulso, foi criado um subdomínio atraente de terceiro nível no domínio .ddns.net, que acabou sendo utilizado como link.
Ao retornar algum tempo depois ao post, o programador descobriu que, em vez de abrir o site, era exibida uma página de aviso do VK informando sobre a tentativa de acesso a um site não seguro:

Parece que os usuários inteligentes deveriam ter a liberdade de decidir quais sites visitar ou não, no entanto, o VKontakte pensa de forma diferente e não oferece nenhuma possibilidade de acessar o link sem artifícios.
O que há de errado
Essa implementação apresenta várias desvantagens significativas:
- Incapacidade de acessar um site suspeito. Como mencionado anteriormente, o usuário não pode ignorar a página de aviso. A única maneira de abrir o link é copiá-lo e colá-lo na barra de endereços.
- Atraso ao acessar o link. A velocidade de redirecionamento depende do ping. Assim, em caso de alto ping, preciosos segundos podem ser perdidos, o que, como sabemos, é inaceitável.
- Monitoramento de acessos. Esse método facilita a coleta de informações sobre as ações dos usuários, o que naturalmente é explorado pelo VK, adicionando ao link seguro o id do post de onde foi feito o acesso.
Liberando Django
Uma solução ideal para todos os problemas mencionados acima pode ser uma extensão para o navegador. Por razões óbvias, a escolha recai sobre o Chrome. No Habr, há um excelente artigo dedicado à escrita de extensões para Chrome.
Para criar tal extensão, precisamos fazer dois arquivos em uma pasta separada: um Manifesto em json e um arquivo JavaScript para monitorar a URL atual.
Criando o arquivo Manifesto
A principal coisa que precisamos fazer é dar permissão à extensão para trabalhar com guias e designar o script executável:
{
"manifest_version": 2,
"name": "Fugir do vk.com/away",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"permissions": ["tabs"],
"browser_action": {
"default_title": "Fugir do vk.com/away"
}
}
Criando um arquivo js
Aqui é simples: no evento chamado ao criar uma nova aba, adicionamos uma verificação para o endereço url, se começa com "", então o substituímos pelo correto, que está na solicitação 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});
}
});
});
Construindo a extensão
Certificando-se de que ambos os arquivos estão na mesma pasta, abra o Chrome, vá para a aba de extensões e clique em "Carregar extensão descompactada". Na janela que se abre, escolha a pasta da extensão escrita e clique em construir. Pronto! Agora todos os links do tipo vk.com/away são substituídos pelos originais.
Em conclusão
Claro, esse tipo de bloqueio salvou muitas pessoas de milhões de sites fraudulentos, no entanto, eu acredito que as pessoas têm o direito de decidir se querem ou não clicar em um link não seguro.
Para sua conveniência, coloquei o projeto em .
Fonte: habr.com
