Habilitar o acesso ao LDAP interno do WebLogic
Para configurar os usuários, o WebLogic utiliza uma base LDAP interna, como uma senha gerada aleatóriamente. Para ambientes de produção, o uso desse LDAP não é recomendado, mas para demonstrações e desenvolvimento precisamos em alguns casos habilitar o acesso à esses dados.
Para acessar o LDAP interno que já vem com o WebLogic, acesse o console e clique no nome do domínio. Acesse a aba Security e escolha a opção Embedded LDAP.
No campo Credential, informe uma nova senha, confirme ela logo abaixo e clique em Save. Reinicie o WebLogic.
Utilize o usuário: cn=Admin e a senha especificada para acesso. A url e porta de acesso são as mesmas do WebLogic. Para acessar você pode utilizar o JXExplorer ou qualquer outro client de LDAP.
Bug na criação do domínio do Oracle Identity Manager
Ao instalar o Oracle Identity Manager com a opção para criação do domínio o instalador pode trazer o seguinte erro:
Error creating ASInstance asinst_1.
Cause:
An internal operation has failed: java.lang.ExceptionInInitializerError
…Caused by: java.lang.ExceptionInInitializerError
at javax.crypto.Mac.getInstance(DashoA13*..)
at oracle.security.crypto.cert.PKCS12.computeMAC(PKCS12.java:299)…
Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
at javax.crypto.SunJCE_b.<clinit>(DashoA13*..)
…Caused by: java.lang.SecurityException: Cannot locate policy or framework files!
at javax.crypto.SunJCE_b.i(DashoA13*..)
Esse problema ocorre ao criar um novo domain pelo utilitário de configuração. Para resolver esse problema, você pode criar um novo domínio do WebLogic e utilizar o utilitário para estender o domínio criado. Dessa forma o erro não irá ocorrer!
Evitar pedir usuário e senha em produção no WLS
Quando você realiza a criação de um domínio do WebLogic em modo de produção, ao iniciar o servidor ele solicita à você o usuário e senha administrativos.
Enter username to boot WebLogic server: Enter password to boot WebLogic server:
Para evitar isso e possibilitar a criação de scripts automáticos para inicialização do domínio WebLogic, é necessário criar um arquivo: boot.properties. Crie o arquivo em DOMAIN/servers/AdminServer/security/boot.properties com o seguinte conteúdo:
username=usuario password=senha
Substitua o “usuario” e “senha” pelo respectiva usuário e senha. Agora é só iniciar o WebLogic e você verá a seguinte linha no log.
<Jan 2, 2012 5:23:22 PM BRST> <Notice> <Security> <BEA-090083> <Storing boot identity in the file: /u01/Oracle/Middleware/user_projects/domains/wc_only_domain/servers/AdminServer/security/boot.properties>
Após o server subir, o arquivo será criptografado e a senha não será mais necessária!
Habilitando Cookies Seguros no WebLogic
Em requisições HTTPS que utilizam cookies é importante habilitar a flag SECURE=”TRUE” nos cookies. Para realizar isso no WebLogic, é necessário adicionar as seguinte linha no weblogic-application.xml
<wls:session-descriptor> <wls:cookie-secure>true</wls:cookie-secure> </wls:session-descriptor>
E garantir que no console do weblogic esteja marcado o seguinte: Domain -> Configuration -> Web Application tab, enable “Auth Cookie Enabled”
Para garantir, abrir o config.xml do weblogic e adicionar/alterar a tag:
<auth-cookie-enabled>true</auth-cookie-enabled>
Mais informações: http://www.owasp.org/index.php/OWASP_AppSec_FAQ#What_are_these_secure_cookies.3F
Desabilitar o Autocompletar em Campos Input
Em campos de login, senha, número de cartão de crédito, CPF e informações que não podem ser compartilhada com usuários mal-intencionados é uma boa prática incluir o seguinte atributo AUTOCOMPLETE=”off”.
Dessa forma o autocompletar fica desabilitado e o browser não salva a senha do usuário.
Exemplo:
<input type="text" name="campo" autocomplete="off" />
Como esse atributo não é válido pela W3C o pessoal costuma inserir o autocomplete=”off” via javascript:
// Utilizando JQuery
jQuery('campo').attr('autocomplete','off');
// Ou Javascript padrão
campo.setAttribute('autocomplete','off');
Pode-se utilizar a solução do javascript para adicionar esse atributo em campos do ADF e/ou elementos onde não temos acesso direto ao código HTML gerado.
Mais informações sobre a vulnerabilidade em:
Manipulando Token de Segurança
Esses dias tive um desafio bem bacana, que foi gravar e ler informações em um dispositivo de segurança programado em Java. O dispositivo é o Alladin eToken Pro 72K (Java).
Utilizei ele para autenticação de duas vias, conforme descrito nesse post, mas foi necessário armazenar algumas informações de segurança para aderir a requisição de um cliente na implantação dos requisitos impostos pelo PCI Security Standards Council na criptografia de dados, para não cair na mesma falha que a Playstation Network.
««« Clique aqui para ler o restante do conteúdo: Manipulando Token de Segurança »»»
Crivo de Eratóstenes
Os números primos possuem várias aplicações, como criptografia e segurança dos dados (por exemplo: SSL, X509, certificados, chaves privadas, ..), e a obtenção deles de forma eficiente sempre foi alvo de estudo dos matemáticos.
O Crivo de Eratóstenes é um algoritmo muito simples e eficiente para gerar números primos. Esse algoritmo consiste em remover os múltiplos de um determinando conjunto.
Por exemplo, quero achar todos os números primos de 1 a 120. O algoritmo gera um conjunto com todos os números de 2 a 120 (já que 1 não é primo). Utiliza o primeiro número (que no caso é 2), e vai removendo os múltiplos: 4, 6, 8, 10, …. e marca o 2 como primo, procura o próximo não removido que é o 3, marca como primo, e vai removendo os múltiplos se não foram removidos anteriormente: 6, 9, 12, 15… Ele vai fazendo isso até raiz quadrada do número máximo que você quer verificar. Se a raiz não é inteira, truncamos (menor inteiro). No nosso exemplo, raiz quadrado de 120, que fica entre 10 e 11 e portanto só precisamos verificar os múltiplos até 10. Garantindo que buscamos por todos os múltiplos possíveis até 120.
««« Clique aqui para ler o restante do conteúdo: Crivo de Eratóstenes »»»
Seu Site como Aplicação no Android
Antes de fazer sua primeira aplicação para o Android, é necessário seguir os procedimentos descritos nesse post. Além disso, para os testes você precisará criar um AVD, a descrição de como fazer isso, pode ser encontrada no conteúdo desse post.
Abra o Eclipse, File, New, Project. Escolha Android Project Using Studio for Android se você instalou o MOTODEV Studio ou Android Project caso contrário. Clique em Next.
««« Clique aqui para ler o restante do conteúdo: Seu Site como Aplicação no Android »»»
Criando Key Store no WebLogic
Um keystore é um repositório de certificados, normalmente utilizado para criptografia SSL. No WebLogic server a extensão desse arquivo é jks. Para manipular um keystore utilizamos a ferramenta keytool.
Execute o utilitário keytool. No meu caso, como estou configurando o Oracle IRM, o alias tem nome “oracle.irm.wrap” e o keystore “irm.jks”. Você pode alterar o tipo de algoritmo (estou utilizando RSA) e o tamanho da chave (2048). Consulte as opções na documentação do keytool. Mude de acordo com sua necessidade.
keytool -genkeypair -alias oracle.irm.wrap -keyalg RSA -keysize 2048 -keystore irm.jks
Informe a senha e o que ele for perguntando. Como estou utilizando para testes, informei tudo o default (Unknown). Pronto Key Store gerado, agora você pode utilizar o JKS criado onde ele for necessário
.
Muitos arquivos abertos?
Em aplicações de grande porte, como servidores JEE, o número de arquivos e processos abertos pode ser relativamente grande. Isso ocasiona um problema em alguns sistemas Linux, pois o número de arquivos e processos abertos por usuário é limitado e uma das mensagens de erro que você poderá encontrar será: “Too many open files”.
Isso ocorre ao utilizar o Oracle SOA Suite no Ubuntu, portanto é uma boa prática realizar esses procedimentos antes da instalação.
O primeiro passo é criar um novo arquivo na pasta /etc/sysctl.d ou adicionar a seguinte linha no arquivo /etc/sysctl.conf:
fs.file-max = 100000
Onde 100000 é o número máximo de arquivos que o kernel do linux pode manipular. Após feito isso, edite o arquivo /etc/security/limits.conf e adicione as seguintes linhas:
thiago soft nproc 2047 thiago hard nproc 16384 thiago soft nofile 1024 thiago hard nofile 65536
Substitua thiago pelo usuário que você está executando os processos. Na terceira coluna, nproc é o número máximo de processos abertos para o usuário e nofile é o número máximo de arquivos abertos para o usuário. Dẽ uma lida no início do arquivo que há explicações sobre cada parâmetro.
Reinicie o computador ou recarregue as alterações com o comando:
sysctl -p
Caso o erro persista, altere os valores de número de processos e número de arquivos abertos.











