Esta tradução pode não refletir as alterações feitas desde 2024-02-03 ao original em Inglês.

Você deveria dar uma olhada nas alterações. Por favor, veja o README de traduções para informações sobre a manutenção de traduções a este artigo.

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 <[email protected]>. 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.

  • accuweather.com (para ver suas informações meteorológicas)
  • pubmed.ncbi.nlm.nih.gov (para baixar artigos)
  • groups.google.com (para encontrar e visualizar postagens em grupos)
  • tripadvisor.com (pelo menos para mostrar o menu completo de um restaurante)
  • blogger.com (para ver os blogs)
  • britishmuseum.org/collection (para ver a coleção)
  • pdr.net (para ver as informações sobre os medicamentos)
  • reiseauskunft.bahn.de (para ver itinerário de trens, pelo menos)
  • rgs.org/about/our-collections/online-exhibitions/ (para ver as exposições)
  • worldcat.org (para procurar livros)

    Como exemplo, veja esta entrada para o manual do GNU Emacs. Observe na página o título “Find a copy in the library”. Sem executar o JavaScript privativo, o único conteúdo sob esse título é um GIF giratório de carregamento e o texto “Finding libraries that hold this item…” As informações reais de disponibilidade da biblioteca para o livro fornecido estão ausentes.

  • scribd.com (para ler textos)
  • soundcloud.com (para ouvir a áudios)
  • documentcloud.org (para ver documentos)
  • bandcamp.com (para ouvir ou baixar músicas)
  • manualslib.com (para baixar manuais)
  • npr.com (para ouvir – tentar usar sua API)
  • nasa.gov (para procurar nas publicações, incluindo fotos e vídeos)
  • reddit.com (para leitura, pelo menos). No momento, você pode fazer isso usando old.reddit.com.

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

  • freedomunited.org (parece ter “sucesso”, mas nenhuma confirmação é mostrada)
  • sumofus.org (a extensão antiga de anos atrás não funciona mais)
  • change.org (atenção, o JS deste site é muito complexo)
  • afsc.org
  • act.ran.org
  • coworker.org
  • defenders.org
  • earthjustice.org
  • amazonwatch.org
  • signherenow.org
  • moveon.org
  • publiccitizen.salsalabs.org
  • action.splcenter.org
  • secure.everyaction.com
  • amnesty.org
  • addup.sierraclub.org
  • ucsusa.org
  • engage.drugpolicy.org
  • engage.us.greenpeace.org

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)
  • wetransfe (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

  • docs.google.com (para baixar documentos)
  • pay.gov (para registrar um contato de DMCA)
  • rsf.org (para assinar petição)
  • theonion.com (para olhar imagens e áudio)
  • goteo.org (para pagamentos)

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