Escreva extensões específicas de site para substituir o código JavaScript dos sites

Muitos sites prejudicam a liberdade dos usuários enviando programas JavaScript não livres para o navegador do usuário. Convidamos voluntários para desenvolver extensões de navegador livres para substituir o JavaScript enviado por sites específicos (veja as listas abaixo).

Nossa primeira resposta ao problema do código JS não livre foi desenvolver o LibreJS, que permite que os navegadores baseados no Firefox detectem e bloqueiem esse código. Isso nos protege de executar programas JS não livres de um site, mas não faz com que o site realmente funcione. Escrever uma extensão para ele, como propomos aqui, conseguiria isso. Também evitaria o risco inerente à execução de software diretamente do site de outra pessoa.

Também poderíamos resolver o problema convencendo webmasters a corrigir seus sites para funcionarem sem o código JavaScript, mas este convencimento se mostra ser muito difícil, já que a maioria deles não entende o problema, muito menos se preocupa com ele. Talvez recomendar o uso dessas extensões em seus sites os convença a prestar atenção no suporte a acesso não JavaScript.

Portanto, convidamos voluntários a escolher um site e escrever uma extensão de navegador para fazer esse site funcionar, supondo que o LibreJS bloqueie o JavaScript não livre enviado pelo site.

A primeira coisa a fazer é examinar rapidamente as licenças dos arquivos JavaScript no site. Alguns deles podem ser na verdade software livre. Se parte do código JS enviado pelo site for livre, você pode incluí-lo em sua extensão, alterando-o conforme necessário.

Em seguida, verifique se o site publicou uma API. Nesse caso, é melhor se comunicar usando a API, se isso puder fazer o trabalho. Caso contrário, você precisa usar os recursos de depuração do navegador para descobrir quais dados e comandos o código JavaScript envia para o servidor – na verdade, sua API não documentada.

A maneira de evitar a violação de direitos autorais no código JavaScript do próprio site é não estudar o código. Nenhuma parte, nem mesmo uma vez. Se você não leu o código, significa que não copiou nada. Olhe apenas para as licenças.

Essas extensões devem ser honestas – elas não devem “trapacear”. Se o JavaScript do site pede informações ao usuário e as envia, a extensão deve solicitar essas informações ao usuário e enviá-las. Se o site solicitar à pessoa (1) para marcar uma caixa para concordar com XYZ, a extensão deve solicitar a para marcar uma caixa para concordar com XYZ. A extensão deve passar fielmente todas as respostas que o usuário inserir. Se o site enviar um cookie, a extensão deve permitir que seja tratado de acordo com as configurações do navegador para cookies.

É impossível implementar segurança real por meio do código JS enviado ao usuário, mas o que quer que o site faça para tentar implementar algo semelhante à segurança, a extensão deve cumprir fielmente. Em particular, se o site solicitar que o usuário responda a perguntas para provar que não é um robô, a extensão deve mostrar as mesmas perguntas, obter as respostas e enviá-las em – permitindo que a pessoa demonstre que é humana.

O librecaptcha de Jeff Carpenter pode ser útil se o site enviar um captcha. Começaremos um projeto para convertê-lo para JS e precisaremos de voluntários para isso, então, por favor, escreva-me se estiver interessado em ajudar.

Enquanto isso, se o código JS do site coleta informações clandestinamente, é admirável impedir essa espionagem. Uma ideia é perguntar ao usuário qual resposta retornar – por exemplo, “O site está tentando descobrir sua localização. O que você quer dizer?” –, mas seria bom evitar perguntar ao usuário com frequência ou repetidamente.

Quando você tiver uma extensão funcionando, envie uma cópia para o Projeto GNU em <js-extensions@gnu.org>. Você também pode registrá-la na lista de extensões do Firefox, se tiver estômago para executar o software não livre para fazer isso.

Criamos uma lista de discussão, js-extensions-discussion, onde você pode conversar com outras pessoas que estão desenvolvendo extensões.

Assim que as coisas estiverem acontecendo, gostaríamos de configurar um repositório no savannah.gnu.org onde colocaremos as extensões que estão funcionando. Para fazer isso, precisamos de um ou dois voluntários para gerenciá-lo. Esperamos que essa tarefa não seja muito trabalhosa; a razão para ter dois é para redundância.

Também poderíamos ter um projeto Savannah que você poderia (se desejar) usar para desenvolver uma extensão; isso também exigiria voluntários para cuidar dele.

Aqui estão algumas sugestões de sites para os quais escrever extensões. No entanto, se algum outro site lhe interessa mais, vá aonde seus interesses o levarem.

Sites de acesso a informações e publicações

O objetivo inicial é lidar com o acesso anônimo. Lidar com o login e o acesso conectado é ir além da obrigação de curto prazo.

Sites de assinatura de petição (para deixar o usuário assinar)

Outros tipos de sites

  • house.gov (para ver páginas e enviar e-mails para deputados)
  • whitehouse.gov (para se comunicar com a Casa Branca e com os webmasters)
  • Disqus, sistema de comentários encontrados em vários sites (para publicar um comentário)
  • regulations.gov (por comentar sobre as regulamentações propostas dos EUA)
  • surveymonkey.com (para responder pesquisas)
  • coworker.org/start-a-petition (para iniciar uma petição)
  • wetransfer (idealmente para upload e download, mas apenas o download seria um bom primeiro passo)
  • stripe.com (para fazer pagamentos para outros sites)

Sites que as pessoas trataram dessa maneira


Nota de rodapé

  1. O autor usa os pronomes de terceira pessoa do singular neutros quanto ao gênero e o adjetivo possessivo “perse,” “per,” “perself” e “pers”.