Strict Standards: Non-static method themeGluedIdeas_Subtle::initOptions() should not be called statically in /home/riopro/www/blog.riopro.com.br/wp-content/themes/gluedideas_subtle/header.php on line 19
Riopro Blog - » Apagando suas senhas do Subclipse

Apagando suas senhas do Subclipse



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Se você usa o SVN no Eclipse, suas senhas podem estar mais comprometidas do que você pensa. Isso acontece essencialmente com quem usa o Eclipse com as preferências de SVN Interface marcada para JavaSVN (para verificar as suas configurações, vá em Window | Preferences | Team | SVN ).

Como minha experiência com isso foi basicamente no Linux, é disso que vou tratar, apesar de saber que isso tende a ocorrer também no MacOS. Explico o porque mais para frente.

Usualmente, o cliente de linha de comando SVN armazena suas configurações em uma pasta .subversion/auth da home do usuário (e os clientes do Windows armazenam em %APPDATA%\Subversion\auth, conforme o FAQ do Subclipse). E mais, dependendo da configuração do servidor SVN, a mesma pode ser armazenada em texto puro.
O mesmo armazenamento se dá quando usamos o JavaHL. Porque o JavaHL é um pacote Java que chama o cliente de linha de comando SVN através da interface JNI. Por mais que possamos questionar a segurança do armazenamento dessas senhas no HD do micro, pelo menos no Linux, a pasta se encontra bem segura pois só é acessível pelo usuário (o padrão da pasta é 700 e, portanto, não é acessível nem pelo grupo do usuário).

O problema é que o JavaHL necessita ser sempre compilado para o kernel da máquina (isso tanto no Linux quanto no MacOS, visto que a API da MS é mais constante e pesada por manter a compatibilidade para trás). Por isso, os programadores que usam o Eclipse fora do Windows frequentemente optam pelo JavaSVN, que é o porte em Java do cliente SVN (e que agora passou a ser chamado de SVNKit).

A grande diferença é que o JavaSVN armazena as chaves dentro de uma subpasta do Eclipse. Isso leva a dois problemas:

  1. O acesso à pasta é tão menos restrito quanto for o acesso ao Eclipse. Ou seja, se o seu Eclipse for somente leitura, todos terão acesso ao seu arquivo de senhas (que mesmo estando criptografado, pode ser copiado para outro diretório);
  2. Se você compactar a sua pasta do Eclipse e mandar para alguém, suas senhas vão junto, o que é no mínimo problemático.

Para evitar o envio/acesso das senhas, a única saída é apagar o arquivo $PASTA_DO_ECLIPSE/configuration/org.eclipse.core.runtime/.keyring. É importante fechar o Eclipse antes de apagar esse arquivo, porque ao fechar ele armazena os valores em memória no arquivo. Um simples:

$ echo "" > ./configuration/org.eclipse.core.runtime/.keyring

Outra forma, que extrai do comentário do Mark Phippard no primeiro link abaixo, é levantar o Eclipse passando os parâmetros -configure para mudar o diretório de armazenamento das suas configurações, ou o -keyring para mudar o local de armazenamento do arquivo keyring. você pode criar um lançador para o Eclipse que passe o parâmetro keyring com a seguinte linha de comando:

$ $ECLIPSE_HOME/eclipse -keyring $HOME/.keyring

Onde $ECLIPSE_HOME é uma variável do diretório do Eclipse (não é necessário criar essa variável, foi só para deixar genérica a solução). O lançador é suficiente para resolver os problemas. Para ler mais sobre o assunto, consulte os links abaixo.

Links Úteis:

http://nlp.cs.byu.edu/~rah67/wordpress/?p=4

http://svn.haxx.se/subusers/archive-2006-11/0301.shtml

http://svnbook.red-bean.com/nightly/en/svn.serverconfig.netmodel.html#svn.serverconfig.netmodel.credcache

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
O Ubuntu 7.04 num Asus Z53E

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
O Vista ainda deixa muito a desejar

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

[…] Como usamos Java para nossa aplicação e o próprio Ant é Java, decidimos criar uma solução Java-Like e que fosse efetivamente portável. Poderiamos usar o JavaHL ou o JavaSVN (atual svnkit). Como já falamos no artigo Apagando suas senhas do Subclipse, preferimos usar o JavaSVN por ele, diferentemente do JavaHL, não precisar ser compilado em cada máquina. […]


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Tente apagar o arquivo f990ee0ec2917a4b1aec7726ceeae16f que fica dentro de um diretorio c:\Document… se\Dados de aplicativos\Subversion\auth\svn.simple


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Cara Janaina,

Isso seria para o caso de você usar o svn via console. O caso descrito se refere aos valores de login e senha armazenados pelo Eclipse.

Posso não ter entendido seu comentário…