WL 6.0.0.1 de Segurança do Servidor - É o servidor de seguro de Cross-Site Scripting / Javascript Injeção de Código
Pergunta
Esta questão foi levantada em nosso projeto:
Segurança agora trabalha em HTTPS com um MobileSecurity-Teste (XSRF etc) que inclui um Aplicativo de Autenticidade para o Android.Nossa adaptadores não exigem qualquer user/pass auth, para que não haja outros reinos, a autenticação de logon ou módulos configurados.O aplicativo pode ser chamada de adaptador de procedimentos de imediato após a WL.O cliente.conectar-se.
O que é Worklight fazendo no lado do servidor para impedir que o servidor de Javascript do lado do código de ataques de injeção?
Mais detalhes sobre este tipo de ataque: http://media.blackhat.com/bh-us-11/Sullivan/BH_US_11_Sullivan_Server_Side_WP.pdf
Em outras palavras, (embora seja difícil) vamos supor que alguém era capaz de usar o nosso APK para criar um novo APK que foi capaz de enganar o Worklight Auth/mecanismo de Segurança, então, somos vulneráveis a um servidor de Javascript do lado do ataque de injeção de código?
Ele praticamente se resume à questão de saber se todos os parâmetros para todos os WL servidor de chamadas são avaliadas e analisadas a partir de texto em objetos Javascript, no máximo, de forma segura, e se nunca há uma chance de que o texto de parâmetro pode ser executado como código Javascript no servidor?
Se assim for, existem outros tipos de possíveis ataques que o WL Servidor Javascript aplicação é protegida contra o que não poderia mesmo estar ciente de?
Solução
Parâmetros são recebidos por placas de seqüência de caracteres/int/bool/matriz, etc.Adaptador quadro de nunca irá avaliar e executar seus parâmetros, de modo que, a menos que você explicitamente o uso de eval(param) em algum lugar no seu código você é bom.
Outro pedaço de proteção WL adaptador de quadro é de moldagem adaptador de resposta no comentário.E. g.se o seu adaptador retorna {val:1} a resposta real do corpo conterá
/* secure {val:1} */
Isso impede JS para ser executado mesmo se automaticamente avaliados por um cliente, por exemplo,quando carregado a partir de um <script src="...">