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. Para ter uma ideia de como fazer isso, vocĂŞ pode conferir exemplos de extensĂľes de site jĂĄ existentes.

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. (Alguns são comerciais e outros não – essa distinção não é significativa para esta questão.) 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

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”.