Friday, March 23, 2007

Microsoft TechDays - Dia 2

Neste segundo dia, das apresentações a que assisti, destaco as seguintes:

DEV012 - Windows Presentation Foundation II
DEV013 - Own3d: Hacking ainda mais fácil em AJAX Web Sites?
DEV015 - Introdução ao Windows Communication Foundation

Cá vai um pequeno resumo!

DEV012 - Windows Presentation Foundation II

"Programming is an art form that fights back."


Foi assim que se iniciou a 2ª parte da sessão sobre WPF, tendo decorrido a 1ª na véspera.

Nesta sessão, falou-se de WPF Everywhere (WPFE), que é um subset do WPF. É XAML-based e tem como plataformas target a Web e o MobilePhone.

WPFE vs. WPF - o WPFE:
- não tem 3D
- tem UI controls minimo
- não tem suporte GPU
- pretende correr no browser

O Web Programming Model é XAML e Javascript, ou XAML e .Net

Objectivo do WPFE:
- enhance de páginas Html: foi mostrado um exemplo de uma página html normal com um script javascript pelo meio, que não faz mais que instanciar uma classe js

Falou-se do MS Expression Design, uma ferramenta para design com a possibilidade para XAML. Falou-se também do XAMLPad, que corre como uma aplicação e permite gerar código XAML a partir de objectos gráficos.

WPFE vs. Flash - o WPFE:
- é XAML-based
- permite tirar partido do Javascript
- permite tirar partido do CLR (C#, VB.Net, VisualStudio)
- é searchable (XML)

Como instalar o WPFE:
- autoinstalation
- windows update? eventualmente num futuro próximo será um dos updates do windows. O utilizador te-lo-á sem sequer se aperceber. Para já não é possivel.
- tamanho: inferior a 2Mb
- não exige .Net/WPF

DEV013 - Own3d: Hacking ainda mais fácil em AJAX Web Sites?

Nesta apresentção, alertou-se para algumas situações que podem gerar insegurança em sites web.

Cuidados a ter:
- não expôr um web service (expôr apenas, por exemplo, só os web methods usados pelo AJAX)
- não usar callbacks passados por parâmetro na Query String (já que a função de callback pode ser 'roubada' e utilizada de forma nociva)
- atenção ao cross-site-scripting (agora ainda mais vulnerável com as tabs dos novos browsers)

Falou-se do Cross Site Request Forgery, que explora a relação de confiança de um site nos seus utilizadores. Uma técnica para o evitar é garantir que um Post vem da minha máquina. Se não vier, não executo. Outra técnica é tornar as páginas minimamente imprevisiveis.
Potencial:
- ataques IP internos
- configuração de routers, impressoras, etc...
- "qualquer endpoint http standard que possa ser automatizado"
Reforçou-se ainda que a minima falha XSS derrota a maioria das técnicas de prevenção.

Como conclusão, foram referidos alguns pontos:
- os browser worms, CSRF, XSS, podem ser explorados em ataques na web 2.0
- a promiscuidade entre tabs no browser torna os sites ainda mais vulneráveis a ataques
- boas práticas:
. privilégios mínimos de acesso a BDs
. não usar frameworks AJAX 'caseiras'
. validar todos os inputs
. cuidado com a exposição de web services

DEV015 - Introdução ao Windows Communication Foundation

Esta sessão apresentou o Windows Communication Foundation (WCF), uma nova abordagem na relação cliente-servidor (ou cliente-serviço).


O WCF pertence à framework 3.0, e possui uma API comum a todas as tecnologias (WSE, Remoting, etc). Reforça o conceito de separação entre interface e implementação.

Como é distribuido?
- hosting no IIS (exige a utilização do ficheiro .svc, que identifica o service type)
- WAS (Windows Activation Service) - no Windows Vista ou no "Longhorn"

Bindings:
- BasicHttpBinding: interoperabilidade com WCF (o WCF garante maior interoperabilidade e maior garantia de conformização aos standards que o WSE)
- os bindings podem ser customizados (no ficheiro de configuração) - neste ponto foi referida a importância das configurações. São muito poderosas e por isso é preciso manipulá-las com cuidado e com a certeza do que se está a fazer.

Contratos:
- serialização do MyOutputType e MyInputType
- serialização feita por:
. DataContractSerializer (default)
. XML Serializer (é mais lento)

Transacções:
- suporta WS-AT
- gestores de transacção:
. LTM (LightWeight Transaction Manager) - um AppDomain, um serviço
. DTC (que pode usar o WS-AT ou o OleTx) - quando temos AppDomains diferentes, uma LTM passa automaticamente a DTC
. KTM (Kernel Transaction Manager) - para o Vista e "Longhorn"

Segurança:
- Autenticação (Security Token; suporte built-in para windows - kerberos e NTLM, Certificados X.509, tokens de Cardspace, tokens de SAML, autenticação de user e pwd)
- Autorização (ServiceAuthorizationBehavior)

A administração WCF pode ser feita com PowerShell.

Interoperabilidade e integração:
- cliente asmx (WCF) e serviço WCF (asmx): estratégia de integração BasicHttpBinding com o WCF
- cliente WCF e serviço COM+: estratégia de integração ComSvcConfig.exe para wrap do COM+ num WCF endpoint
- cliente WCF e serviço COM: estratégia de integração ServerMonikers
- ...entre outras...

Conclusões:
- WCF é uma DSL para comunicação (message-based)
- API consistente e unificada
- vem com o Framework .Net 3.0

No comments: