AJAX amplifica riscos de segurança em serviços online?

Olá

Deu no IDG:

AJAX amplifica riscos de segurança em serviços online, alertam analistas

[quote=a seguir no artigo IDG]Um exemplo neste sentido foi o worm de infecção em massa Yamanner, que se aproveitava de um erro de múltiplos scripts no Yahoo! Mail para infectar milhares de usuários. A praga chegava aos e-mails com o assunto “New Graphic Site” e era ativado simplesmente após sua leitura pelo usuário.
[/quote]

Comentários?

[]s
Luca

isto não é exatamente novidade …
claro que permitindo qe métodos no servidor sejam chamados via javascript se esta aumentando a possibilidade de um ataque, claro que isto vai depender de quais métodos do teu sistema tu libere para chamadas via ajax (por exemplo, nunca nada que possibilite a alteração de um usuário ou a vrificação da senha do mesmo deve estar disponivel :smiley: )

E porque?

E porque?[/quote]
por que isto poderia ser chamado de outro site via cross site scripting ou algma outra tecnica deste tipo, utilizando a propria sessão do usuário logado no seu site para, por exemplo alterar a senha do usuário e utilizar de forma errada a conta deste usuário.

este é só um exemplo :smiley:

Oh, Lord… e o Google parece que tah querendo quase fazer um WOS(Sistema Operacional da Web) usando isso…
Aliás, falam que usando o GWT eu teria falhas graves que eu devo prestar atenção até no meu codificar(em Java) para não deixar algumas partes expostas do meu sistema.Alguém sabe algo sobre isso?E como eu devo isolar bunitim as classes na minha APP GWT?Algumas sugestões?

urubatan, mas até onde eu conheço do XMLHttpRequest, o Firefox, e também o IE(ao menos nas suas últimas versões), não permitem fazer requisições cross-domain. Assim como também não permitem acessar informações via-js cross-domain em um, por exemplo, iframe. Poderia exemplificar?

Dei uma olhada na wikipedia mas os exemplos me pareceram sempre ligados à uma brecha do browser.

acho que uma coisa que pode ser feita é ir na barra de endereco e se usar de “javascript:codigoMalicioso” em um browser com uma sessao aberta. Tipo, digamos que na lib js da aplicação há métodos genéricos usados pela aplicacao para interagir com o server. Daria pra chamar esses métodos via barra de endereco. Mas dai, cairiamos na mesma jurisdição dos problemas de segurança de uma aplicação sem AJAX…

mesma coisa que salvar, em um formulario um codigo javascript para fazer alguma coisa disparado por um botão ou algo assim, em cadastros simples desprotegidos.

giuliano, vc estava aquele dia q eu coloquei um alert(oi) dentro de um cadastro da metodista?

AJAX é o rabo que abana o cachorro. Um remendo que virou tecnologia. Chamem com quiser, mas ajax é triste, parece uma reacao desesperada a falta de recursos dos padroes ultrapassados.

Mas funciona, entao eu uso. :wink:

O ruim eh que causar DoS em qualquer ajax é mais facil que spoof de dns. Se o mal-intencionado tiver uma banda monstra, o sevidor para, principalmente se for java.

Triste? Se fosse triste não teria causado 1/3 do barulho que fez. Ah não ser é claro que você gostava por exemplo, do Hotmail. :wink:

Acho que a última forma que alguém mal intencionado faria DoS seria com Ajax.

Grande Luca!!

Não estou acostumado a responder tópicos por aqui, mas não tem como ignorar um do Luca de la mancha :slight_smile:

Estou trabalhando com web 2.0 a um tempo já e vejo tanto risco em segurança em AJAX quanto em web-services, se você decide jogar algo crítico na web disponível para todos é claro que você vai tomar na cabeça.

Os serviços AJAX podem muito bem ser seguros, podem pedir autenticação e serem criptografados.

O que expor e o que não expor é uma decisão cuidadosa a ser tomada.

O GWT e outros frameworks que, como ele, transformam java em javascript são bem legais, eu gosto da maneira de que se programa em WEB como se fosse Swing :). Mas, de novo, deve-se tomar cuidado com o que você vai abrir para a web.

Eu estou muito entusiasmado com web 2.0, a experiência do usuário fica realmente muito melhor e é muito mais rápido de se programar.

O artigo da IDG só fala a mesma coisa que sempre se fala, o problema é o código/programador que faz o serviço. Muita gente acha legal e fácil e usa de qualquer jeito, dai é claro que existirão brechas e não será culpa da tecnologia, mas como errar é humano e culpar alguem pelo seu erro é mais humando ainda, a tecnologia sempre paga o pato.

Ps.: Da um sinal de vida em sampa luca!

[quote=peczenyj]mesma coisa que salvar, em um formulario um codigo javascript para fazer alguma coisa disparado por um botão ou algo assim, em cadastros simples desprotegidos.

giuliano, vc estava aquele dia q eu coloquei um alert(oi) dentro de um cadastro da metodista?[/quote]

Grande Thiago! hehehe…

claro, to ligado nesse problema. Mas a questão é o seguinte, apartir do momento que tu disponibiliza software para ser usado é lógico que ele sofrerá de problemas de segurança, alguns mais e outros menos, mas todos terão problemas de vulnerabilidade. O indiano la não pegou um Smart Card esquentou e conseguiu hackea-lo? hehehe…

Tudo que pode ser feito, pode ser desfeito.

A Segurança na web ainda não está 100% madura, e como mais novidades vão surgindo e serviços vão surgindo, maiores as possibilidades de encontrar falhas ou brechas, a web 2.0, está no início do seu desenvolvimento.

Só alguns esclarecimentos:

:arrow: Aplicações que usam AJAX não podem ler nem escrever em sistemas de arquivo local.
:arrow: As limitações do JavaScript protegem a aplicação de eventuais ataques.
:arrow: Verificações de domínio dos cross-scripting podem ser úteis para diminuir os ataques.
:arrow: Cross-browser podem aumentar as inconsitências das limitações impostas pelo AJAX.
:arrow: Políticas de acesso remoto devem ser estabelecidas de forma que não possibilite execuções inesperadas.
:arrow: Quando se trabalha com webservices, algumas verificações devem ser feitas em código, pois cada browser trata níveis de privilégio diferenciados.

[quote=jmp]AJAX é o rabo que abana o cachorro. Um remendo que virou tecnologia. Chamem com quiser, mas ajax é triste, parece uma reacao desesperada a falta de recursos dos padroes ultrapassados.
[/quote]

Você tem alguma sugestão melhor?

Tenho trabalhado com AJAX mais de um ano e na minha visão nos próximos meses com o boooom do AJAX deve aumentar bastante as vunerabilidades nos sites/sistemas web. É preciso ter muito mais cuidado que no modelo tradicional web (request/reponse) e ter cuidado que métodos expor é só o começo.

Agora pra quem falou que AJAX é gato… tem gato maior que fazer sistemas usando HTML? mas o ajax vai ajudar matar boa parte dos aplicativos desktop e colocar na WEB isso mais na frente vai servir pra nos despedirmos do HTML que conhecemos hoje e partir pra algo que seja projetado de fato para se desenvolver sistemas.

Eu sinceramente não consigo encontrar um problema de segurança no fato usar ajax. Se você antes já tinha validação de segurança server side(espero que sim), a única coisa que muda(e nem é tanto) é a forma como suas requisições chegam e a resposta que você da.

[quote=microfilo][quote=jmp]AJAX é o rabo que abana o cachorro. Um remendo que virou tecnologia. Chamem com quiser, mas ajax é triste, parece uma reacao desesperada a falta de recursos dos padroes ultrapassados.
[/quote]

Você tem alguma sugestão melhor?[/quote]

Se nem as pessoas que ganham para ter solucoes ainda nao apresentaram nada, como eu simples mortal trabalhando o dia inteiro em outras coisas vou ter?

-------------- editado

Acho que os principais problemas do ajax sao:

  • interoperabilidade
  • aparentemente é sensivel a ataque que cause DoS
  • nao eh simples
  • geralmente eh lento (cpu e as vezes banda tbm)

Quanto a segurança, acho que não há tantos problemas assim.

Caso de Ajax: o live mail é lindo no meu pc. Porém, o do meu pai eh um 500mhz 128 ram, o live mail fica incrivelmente ruim. Meu pai usa o pc pra redigir documentos e ler emails, e essa tecnologia inevitavelmente vai acabar forçando ele a comprar outro computador.

A mesma coisa acontece com o gmail e flickr. até Instalei linux no pc dele para tentar “resolver” (slackware 4.1), ficou melhor mas nao muito, voltei para o windows.

Quan

Não seria o caso de começar a se pensar em aplicações usando algo estilo OpenLaszlo por exemplo?

Ao invez de requisições via navegador usando javascript, usa-se a tecnologia do Flash, e permite MUITO mais de eventos de formulários do que o proprio Ajax consegue fazer com MUITO, mas MUITO javascript :slight_smile:

seria ideal ter opção de ou usar AJAX e ter um pentium 4 de 9Ghz e uma versão html simples pra quem ainda usa um 486 ou tem deficiencias visuais, por exemplo.

Sinceramente nao entendi essa ideia de uma aplicacao envolvendo AJAX demandar mais de maquina. O AJAX, pelo contrario, se bem utilizado pode tornar uma aplicacao mais leve. O GMail mesmo, ao inves de ficar dando refresh e remontando a tela de mensagens inultimente, apenas o faz quando tem mensagem nova. Mudancas pontuais.

Acho que eh mais um problema da aplicacao vs hardware exigido, e nao tanto da tecnologia. Sera que uma aplicacao hipotetica que fica pesada com AJAX funcionaria legal sem ele (para a mesma maquina, obvio)?

Marcio Kuchma