domingo, junho 25, 2006

De quem vem o perigo?

Tive a ler o artigo de V. Haldar, D. Chandra and M. Franz, ”Dynamic Taint Propagation for Java”, Annual Computer Security Applications Conference, 2005. É bastante interessante e explica os ataques mais comuns a aplicações web, assim como algumas técnicas para os contrariar, recomendo a leitura para quem se interessar no tema.

Numa das frase do artigo é dito: "For example, an attacker could provide input that is then used to construct malicious queries to the backend to extract data that she was not authorized to see.". Como se pode verificar o atacante/trafulha é referido como uma "she", e já não é o primeiro sítio onde vejo isto, o que me leva a uma pergunta - Será que finalmente repararam que as mulheres são mais perigosas que os homens?

sexta-feira, junho 23, 2006

Camping de Verão

Finalmente ontem conseguimos marcar as tão desejadas férias de Verão. Este ano irão ser de dia 3 até dia 8 de Agosto em Quarteira. Como é óbvio e para manter a tradição, a estadia irá ser num parque de campismo.

Parece que este ano ao contrário das 6 pessoas habituais, iremos ser pelo menos 11 pessoas, o que sem dúvida me agrada bastante, pelo menos tornará os nossos jogos de Party, rapazes contra raparigas mais equilibrados porque este ano vão ser mais raparigas que rapazes, pode ser que assim tenham alguma hipótese!!!

quinta-feira, junho 22, 2006

A recta final

Após duros anos de torturas intensas, eis que se começa a ver a luz já não tão ao fundo do túnel. Ontem fiz o meu penúltimo exame no ISEL e agora, falta só um exame e a apresentação do trabalho final. Parece que antes de terminar esta etapa já começo a correr em paralelo para a próxima... onde vou trabalhar??? Bem é preciso é ir com calma, ainda me falta um exame complicado, e em seguida também quero desfrutar de umas mini férias depois logo pensarei no assunto e analisarei as propostas que já tenho.

domingo, junho 11, 2006

Contador

Sei que é feio imitar, mas devemos aproveitar uma boa ideia. Após ter visto o contador de visitantes no blog de um amigo, andei a investigar e era relativamente simples integrar um contador com o meu blog. E aqui está ele!

segunda-feira, junho 05, 2006

A grande caminhada

Este fim de semana fui ao Algarve, mais propriamente à Galé que fica perto de Albufeira, esta viagem surgiu devido ao congresso anual da Medialog. Na sexta a noite fomos sair até Albufeira, chamámos uns táxis e lá fomos nós ao "Liberto's", curiosamente o bar onde já tinha ido na passagem de ano de 2003.

Por volta das 2 horas começamos a falar em regressar ao hotel, pois no dia seguinte tinhamos de acordar cedo para ir assistir ao congresso. Surgiu a ideia de irmos a pé já que aparentemente não era assim tão longe, deveria ser algo como 7km. Então eram 2h02m quando saimos de Albufeira, entretidos lá fomos na conversa estrada fora. Passado mais ou menos uma hora, e já começavamos a ficar cansados, aparece um ponto verde no horizonte. Logo disseram:
-"É pá aquele ponto não é o letreiro que está por cima do hotel?"
-Eu em desespero -"Não pode ser aquilo está longe que se farta!!!"
Pois é mas realmente era mesmo o hotel, lá continuámos nós a seguir o nosso "faról" até que as 4h38m chegámos ao hotél mais vivos do que mortos. Ao fim a distância era de cerca de 12km desde Albufeira até o nosso hotél na Galé.

Mapa

quinta-feira, junho 01, 2006

Capturar Cookies

Após a minha aula de ontem de segurança informática, vim fazer uns testes à segurança do blogspot.
Graças ao facto do blogsport aceitar a criação de links vou aproveitar-me dessa fraqueza para capturar o cookie de alguem que click no meu link. Isto apenas é um teste eu não estou a capturar nenhum cookie, só quero demonstrar que é possível. Clicando no link abaixo:

Visitem a minha página

Aparentemente só foram reencaminhados para outra página, mas observem a query string (var=javascript:document.cookie), eu guardei a informação de um possível cookie que poderiam ter ao fazer login no blogspot. Nessitaria agora de processar a query string na nova página e já teria o cookie que me permitia fazer login no blogspot com a vossa conta. Volto a dizer que isto é só um exemplo e que não estou a capturar nenhum cookie.

domingo, maio 21, 2006

O Código Da Vinci

Há algum tempo que não via uma euforia tão grande por um filme. Sábado à noite tentei ir à sessão das 0:30 (ou seja já era domingo) ao Cascaishopping, espanto o meu mas estava esgotado...esgotado, eu quando vou ao cinema a essa hora nunca estão mais de meia dúzia de "gatos pingados". Vou a acelerar até ao CascaisVilla para tentar ainda chegar a tempo, e ainda mais espanto, só havia lugares para a 1ª fila, torcicolo não muito obrigado.

Domingo à tarde lá tentei num cinema que nunca tinha ido, no Beloura shopping. Sim desta vez havia lugares e para uma sessão a meio da tarde. Só posso dizer que adorei o cinema: sítio fácil para estacionar o carro, tela gigante, sem putos aos guinchos e a mandar pipocas, filas extremamente desniveladas que até se podia sentar um cabeçudo à frente sem nos chatear e ainda umas pipocas espetaculares.

Passando ao filme em si, para mim, está um filme bem conseguido em termos de realização, cenários, etc, mas por outro lado não passa de mais uma história que interliga: Santo Graal, templários, priorado do Sião, Sudário e a Capela de Roslin. A destacar o desempenho do actor Ian McKeller que dá um toque de brilhantismo a toda a intriga.

Em termos da veracidade das histórias sobre este tema, haverá sempre quem acredita na história contada pela igreja e quem acredite na falsidade sobre a qual assenta todo o cristianismo. Facilmente descobrem-se inconsistências entre histórias e coincidências entre outras. Por exemplo segundo alguns, Da Vinci saberia que Jesus teria tido descendentes e tentaria que essa verdade não fosse incoberta ou pelo menos esquecida, por outro lado, outras histórias dizem que o Sudário não tem uma imagem de Jesus mas sim de Da Vinci e que o próprio Da Vinci o teria "fabricado". Estas histórias são claramente inconsistentes, porque Da Vinci por um lado defenderia a verdade e por outro criaria uma mentira? Acho o último diálogo entre as personagens Robert e Sophie, muito interessante e que basicamente dá uma resposta a toda a polémica - Que interessa a verdade? interessa é o modo como as pessoas agem perante o conhecimento que têm.

sábado, maio 20, 2006

Mais um enforcamento

Ai não é enforcamento que queria dizer era mesmo casamento (fugiu-me a boca para a verdade).
Desta vez o condenado...condenado não, noivo, bolas tou só a enganar-me... dá por nome de Hugo Vicente, mais conhecido como "Montes da Bués", o nosso caro colega iseliano. Hoje a tarde apareceu-me ele em minha casa com um convite todo bonitinho (claro que a ideia não foi dele foi da possível futura esposa), para dia 16 de Setembro.

terça-feira, maio 16, 2006

Apresentação - "Gestão de Identidades"

Posso dizer que apesar de não ter sido um evento extraordinário, foi um evento que não me desiludiu totalmente. A primeira coisa a focar é a excelência do discurso do sr. Rafal Lukawiecki, do melhor que tenho assistido. Em relação ao conteúdo em si, agradou-me conseguir fazer alguns paralelismos graças ao conhecimento que adquiri nas cadeiras de segurança informática, o que significa que aprendi qualquer coisa importante e que me dá capacidade de raciocinar sobre assuntos relacionados com a matéria.

sábado, maio 13, 2006

New como modificador de métodos em C#

Apesar de já ter ouvido sobre o assunto, enquanto estava a escrever algumas linhas de código, fiquei na dúvida sobre o que o modificador new fazia quando aplicado a um método, então resolvi fazer uma pequena pesquisa e tirar as minhas conclusões.
Em C# existem 6 modificadores de métodos: static, extern, abstract, virtual, override e new. Passando rapidamente pelos três primeiros, static tem o objectivo de definir um método de tipo e não de instância, extern apesar de nunca o ter usado serve para indicar que um método é definido externamente por exemplo numa DLL e abstract tem como objectivo não dar implementação ao método, obrigando que a derivada da classe lhe dê implementação, para se ter métodos abstract é necessário que a classe também seja marcada como abstract (a classe é encarada como uma interface).
Os atributos virtual e override são os que considero mais importantes pois são os que efectivamente possibilitam o polimorfismo, por isso darei um pouco mais de atenção mais a frente. Analisando o código seguinte fica a pergunta, qual a diferença entre o funcionamento dos dois métodos?
     
public class Base { public void Met1() { Console.WriteLine("Base.Met1"); } public void Met2() { Console.WriteLine("Base.Met2"); } } public class Derivation1 : Base { public void Met1() { Console.WriteLine("Derivation1.Met1"); } public new void Met2() { Console.WriteLine("Derivation1.Met2"); }
public static void Main() { Base bas = new Derivation1(); Derivation1 der1 = new Derivation1(); bas.Met1(); der1.Met1(); Console.WriteLine(); bas.Met2(); der1.Met2(); Console.ReadLine(); } }
A resposta é nenhuma, a referência para base como esta tem implementação dos métodos irá chamar os seus métodos e a referência para a classe derivada como seria espectável irá chamar a sua implementação.
Base.Met1
Derivation1.Met1
Base.Met2
Derivation1.Met2
Então para que serve o new? O seu objectivo é simplesmente forçar a ideia que se está a esconder um método não virtual da classe base, o que na prática simplesmente vai evitar um warning do tipo “'Derivation1.Met1()' hides inherited member 'Base.Met1()'. Use the new keyword if hiding was intended”. Creio que o motivo do new existir em C# vem dele não existir em C++, ou seja, como em C++ o programador inadvertidamente poderia esconder métodos e só o iria detectar em runtime porque o comportamento não seria o esperado, em C# pelo menos tem um warning em compile time.
Complicando mais um pouco, o código seguinte mostra a interacção entre o virtual, o override e o new.
public class Base{
  public virtual void Met1() { Console.WriteLine("Base.Met1"); }
  public virtual void Met2() { Console.WriteLine("Base.Met2"); }
  public virtual void Met3() { Console.WriteLine("Base.Met3"); }  
}  
public class Derivation1 : Base { public override void Met1() { Console.WriteLine("Derivation1.Met1"); } public new virtual void Met2(){Console.WriteLine("Derivation1.Met2");} public override void Met3() { Console.WriteLine("Derivation1.Met3"); }
public class Derivation2 : Derivation1 { public override void Met1() { Console.WriteLine("Derivation2.Met1"); } public override void Met2() {Console.WriteLine("Derivation2.Met2");} public new virtual void Met3(){Console.WriteLine("Derivation2.Met3");}
public static void Main() { Base b = new Derivation2(); Derivation1 d1 = new Derivation2(); Derivation2 d2 = new Derivation2();
b.Met1(); d1.Met1(); d2.Met1(); Console.WriteLine(); b.Met2(); d1.Met2(); d2.Met2(); Console.WriteLine();
b.Met3(); d1.Met3(); d2.Met3(); Console.ReadLine(); } }
Na chamada ao Met1, apesar de ter diferentes referências, como estou a construir um objecto Derivation2 desde que os métodos sejam polimórficos vou chamar o Met1 de Derivation2. Na chamada a Met2, tendo como referência a Base, o que vai acontecer é que se vai chamar o Met2 da Base, isto porque o new na Derivation1 está a criar um novo método com a mesma assinatura, logo está a isolar as suas classes base das suas derivadas. O raciocínio para o Met3 será o mesmo, o output será o seguinte:
Derivation2.Met1
Derivation2.Met1
Derivation2.Met1

Base.Met2
Derivation2.Met2
Derivation2.Met2
Derivation1.Met3
Derivation1.Met3
Derivation2.Met3