truque de Javascript? Como o scribd dificulta até mesmo copiar e colar texto

19

Ultimamente, tenho visto que o scribd torna muito difícil para os usuários (usuários gratuitos) navegar em um documento hospedado em seu site. Não há capacidade de pesquisar em um documento, muito menos de poder fazer o download do mesmo.

Usando javascript, eles carregam páginas sob demanda no navegador e, portanto, o recurso "salvar como" do navegador não ajuda muito.

Para meu espanto, vi que até copiar / colar texto copia rabiscos para a área de transferência! Para verificar o que estava errado, desliguei o javascript no navegador e, em seguida, carreguei o mesmo documento novamente. Voila, eu vi o rabisco. E assim, parece que o javascript do scribd de alguma forma decodifica o texto sem sentido e o exibe no navegador.

Agora, minha pergunta é, mesmo depois que o javascript está habilitado e o texto é renderizado corretamente no navegador, se eu for examinar os objetos DOM correspondentes ao texto que seleciono, ainda vejo o texto sem sentido.

Então, agora estou confuso. O texto é exibido bem para o usuário, mas os objetos DOM ainda contêm conteúdo sem sentido. Então a questão é, que tipo de hook / code javascript o site está usando, de modo a ser capaz de reter o jargão nos objetos DOM e ainda renderizar o texto decodificado?

Existe uma maneira de acessar o texto decodificado? Minha intenção não é inverter a engenharia do algoritmo para decodificar, mas para localizar onde o texto decodificado está sendo armazenado?

Exemplo de documento é:

link

Veja o que acontece quando você liga / desliga o Javascript!

    
por user2497064 19.06.2013 / 10:55

2 respostas

15

Veja o font-family para o span . Eles usam uma fonte personalizada (neste caso, ff6 ).

Eles devem fazer isso para que mais documentos PDF sejam exibidos corretamente. Como nos documentos PDF, não há exigência de que o texto no documento deva usar um conjunto de caracteres padrão. Só é necessário usar um código que mapeie os glifos na fonte incorporada.

    
por 19.06.2013 / 11:20
10

Se você olhar o texto exibido versus o "rabisco", verá que algumas das letras são as mesmas, enquanto algumas das letras são substituídas. Por exemplo, "Mltmrprfsm Jblbemr" é "Enterprise Manager". Com texto suficiente, você deve conseguir criar uma tabela de tradução rápida. Já sabemos que M se traduz em E , L - > N , T , R e P são claros, F - > R , etc. Com algum tempo, trabalho de detetive e modestas habilidades de programação, poder-se-ia traduzir todo o documento.

Claro, não há garantia de que o próximo documento usaria a mesma fonte ff6 que Dan D. mencionou , então pegar essa fonte para uso local deve ser o próximo passo se você quiser salvar o texto para mais tarde.

    
por 19.06.2013 / 16:51

Tags