sildenafil billig cipro case in vendita kamagra wo kaufen sildenafil tabletten sildenafil costo cialis holland viagra bestellen cialis apotheek acquisto cialis 5 mg viagra online kaufen erfahrungen viagra preis preis viagra viagra kaufen usa viagra 25 mg rezeptfrei kamagra oral jelly per nachnahme generische viagra comprare finasteride apothekenpreis viagra propecia costo viagra aus holland finasteride 1 mg generico flagyl compresse 250 mg preisvergleich levitra compra viagra online cialis soft kaufen cialis rezeptpflicht cialis per nachnahme costo finasteride generika viagra cialis levitra kaufen ohne rezept tabletten cialis acquisto plavix lasix 500 mg cialis generika bestellen cialis wo kaufen billig viagra ratiopharm viagra rezeptfrei erfahrungsberichte viagra generico opinioni prezzo viagra 25 mg clomid 50 mg viagra billig bestellen kamagra pille 100mg viagra generika kamagra oral jelly günstig kamagra ohne rezept viagra pillenmaster tschechien viagra cialis generika ohne rezept viagra günstig bestellen clomid senza ricetta cialis generika erfahrungen cialis generika billig viagra online bestellen acquisto cialis original levitra rezeptfrei kamagra kautabletten test viagra original rezeptfrei viagra generico online viagra im internet bestellen strafbar viagra ohne rezept holland viagra verschreibungspflichtig levitra kopen viagra tabletten proscar 5 mg viagra kaufen berlin levitra online bestellen propecia generico in italia acquisto priligy viagra preisliste günstiger viagra propecia prezzo viagra rezeptfrei spanien cialis ohne rezept kaufen viagra online bestellen erfahrungen levitra 20mg rezeptfrei viagra online apotheke lasix 25 mg niederlande cialis acquisto cialis generico viagra preise in deutschland generico priligy viagra generika indien viagra bald billiger kamagra schweiz levitra ci vuole ricetta kamagra wien finasteride dove comprare viagra pfizer kaufen viagra im internet kaufen levitra per nachnahme betere erectie priligy compresse tadalafil ricetta super kamagra bestellen viagra bestellen per nachname cialis 5 mg rezeptfrei cialis verkoop mannen erectie kamagra online acquisto flagyl priligy vendita on line cialis nederland viagra kaufen in deutschland cialis rezeptfrei land viagra rezeptfrei günstig generika tadalafil cialis viagra a poco prezzo viagra deutschland rezeptfrei kamagra bijsluiter viagra venda livre zovirax generico kauf viagra cialis rezeptfrei aus deutschland erectiepil viagra online schweiz zovirax labiale prezzo viagra sicher bestellen cialis generico italia tadalafil prezzo viagra generika oder original acquisto viagra generico viagra 100mg ohne rezept viagra billigst viagra generika bestellen generika cialis viagra online kaufen ohne rezept cialis preis apotheke günstig kamagra kaufen plavix compresse propecia generico costo cialis generika internet cialis verkauf comprare viagra online viagra kaufen in münchen super kamagra generika oral jelly kamagra bestellen cialis filmtabletten viagra einzeln kaufen kamagra bijwerkingen cialis generika aus europa tadalafil nachnahme kamagra oral jelly preis cialis 10mg preis cialis alternative finasteride vendita cialis rezeptfrei cialis 5mg preis lasix prezzo levitra rezeptfrei schweiz generische levitra cialis 5mg filmtabletten preisvergleich levitra kaufen tadalafil tabletten tadalafil 20mg kaufen viagra kaufen test prezzo finasteride comprare cialis in italia prezzi viagra viagra kaufen preisvergleich viagra auf rechnung bestellen levitra generika erfahrungen priligy 60 mg vardenafil kaufen cialis dove si compra priligy vendita levitra pil viagra generika 100 mg super kamagra preisvergleich kamagra verkauf viagra in holland schweiz viagra viagra vrouwen viagra generico preiswert cialis cialis generika nebenwirkungen levitra günstig kaufen viagra rezeptfrei erfahrungen plavix vendita viagra schweiz rezeptfrei comprar levitra generica generieke medicijnen cialis preise apotheke levitra in apotheke preisvergleich kamagra cialis rezeptfrei deutschland lasix senza ricetta tadalafil bestellen generico finasteride cialis holland rezeptfrei levitra 10mg rezeptfrei viagra original günstig viagra 100mg preisvergleich zovirax equivalente cialis generika preisvergleich viagra verkauf viagra kaufen mit rezept comprare viagra proscar generico cialis aus indien kamagra rezeptfrei acquisto cialis italia viagra cialis kaufen compra viagra italia sildenafil per donne viagra rezeptfrei in holland nolvadex costo ersatz viagra cialis rezeptfrei schweiz viagra rezept online viagra legal kaufen clomid prescrizione preis kamagra erectie middelen finasteride generico farmacia tadalafil generika viagra preise deutschland cialis billig viagra apothekenpflichtig cialis preisvergleich azithromycin 250 mg preisvergleich levitra 20 mg cialis rezeptfrei bestellen viagra rezeptfrei holland viagra türkei rezeptfrei levitra serve ricetta viagra kaufen paypal viagra 50mg preis sildenafil preise propecia ricetta viagra versand schweiz prescrizione clomid viagra ohne rezept forum sildenafil 100mg preis viagra kaufen günstig levitra tabletten günstig viagra kaufen levitra filmtabletten 20mg prezzo zitromax 500 original viagra ohne rezept apotheke viagra preis viagra zonder recept kamagra oral jelly bestellen cialis original kaufen tadalafil costo viagra nur mit rezept viagra kaufen in wien vardenafil bestellen viagra per nachnahme impotentie kamagra lutschtabletten kamagra tabletten erfahrungen cialis pillen cialis generico acquisto cialis 20mg filmtabletten bestellen compra viagra generico cialis 5mg generika comprar viagra pela net alternativen viagra cialis preiswert kaufen cialis versand cialis bestellen forum cialis generico finasteride quanto costa viagra ohne rezept kaufen cialis in österreich kaufen cialis generico funziona viagra halbe tablette cialis apotheke günstig cialis viagra preis in apotheke viagra online rezeptfrei viagra express versand kamagra generika levitra generika forum viagra online kaufen kamagra online kaufen acquisto zitromax prezzo viagra 50 mg viagra aus indien viagra rezept viagra kosten in der apotheke cialis berlin koop levitra plavix prezzo versandapotheke viagra viagra blitzversand lasix compresse 25 mg cialis rezeptfrei günstig mannen pil viagra ersatz pillenpharm viagra zovirax compresse prezzo finasteride 5 mg cialis rezeptfrei österreich kamagra wirkung viagra bestellen rezeptfrei acquista cialis on line kamagra kopen viagra preiswert viagra rezeptfrei billig generic tadalafil generika flagyl compresse prezzo cialis lilly preis viagra efeitos viagra rezeptfrei bestellen proscar ricetta alternativ viagra kamagra verschreibungspflichtig viagra bestellen erfahrung cialis 20 mg generico viagra rezeptfrei auf rechnung cialis generika indien cialis comprare online pillendienst viagra viagra kaufen wien tadalafil acquisto levitra billig kaufen kaufen cialis kamagra tabletten lioresal compresse cialis niederlande cipro prezzi viagra kaufen ohne rezept forum viagra preisvergleich viagra generika per nachnahme viagra cialis levitra generika viagra bestellen schweiz viagra online kaufen forum viagra einzeln bestellen zovirax pomata prezzo tadalafil naturale sildenafil rezeptfrei priligy generico apotheke online viagra viagra torte rezept generico zovirax levitra rezeptfrei holland kamagra preisvergleich viagra kautabletten kamagra indien viagra rezeptfrei niederlande cialis seriös kaufen priligy prezzo levitra rezeptfrei cialis 10 mg rezeptfrei costo propecia viagra rezeptfrei viagra rezeptfrei in der apotheke cialis generika schweiz cialis generico esiste acquisto nolvadex rezeptpflichtig viagra

Archive

Archive for the ‘Security’ Category

Authentication 101 – Part 1 – Concepts

August 14th, 2009 Galvão 2 comments

Intro

Authentication always been one of the main concerns when developing web applications. This is a first post of a series of three (that’s what I’ve initially planned, I may extend it)that tries to shed some light on this subject. Although all examples in this series are presented using PHP and PostgreSQL, you’ll notice that the concepts involved are pretty common to other web technologies as well.

Part 1 – Concepts

I always liked to think before doing something or, in the worst case, think while doing it. Both strategies work for me, although the second one always requires more time re-coding everything =) The important thing here, and this is commonly overlooked in most development environments I’ve watched in almost 15 years working on the web, is to define which are the concepts involved in authenticating a user, how the application (or, at least this part of the application) should flow.

Read more…

The neverending closing tag discussion

February 19th, 2009 Galvão 2 comments

[pt-BR]

The discussion about whether programmers should or shouldn’t use the PHP closing tag on their code has started again. I’m a little radical when speaking about some issues, but for me there are basically two excuses for not closing your code:

1 – Laziness – It’s the same (whether the PHP interpreter treats differently or not, I really don’t care) as not closing curly braces in one-line control structures. Laziness in programming, IMHO, can only lead to problems.

2 – Fear – The fear about having a white space injection vulnerability in your app.

None of the above reasons is valid for me. Programmers are responsible for the code they write. It’s only natural that a programmer is self assured and has control of his/her source code. Therefore if the code will or will not have a white space at the end is a programmer’s responsibility.

To avoid this by not putting a PHP close tag at the end of the file is a demonstration of lack of self assurance. It’s an easy solution in a professional area where “easy” rarely – or at least it should rarely – applies to anything.Unfortunately a lot of PHP programmers have the bad habit of pursuing “easy” and “safe” solutions that don’t directly depend on them.

You might find my words too harsh, but I consider them true nevertheless. Oh, and relax, after all this is a “one guy’s opinion”.

Update: I was taking a look at the comments on the twitter poll which generated this post and I couldn’t help to add this: PHP Official Documentation states that the closing tag is optional (when dealing with pure PHP code, of course), while Zend Framework’s Coding Style Documentation states that it’s “never permitted”. This is quite an absurd. If the language itself states that something is optional, any related tool should respect this.

A discussão sobre se programadores devem ou não usar a tag de fechamento PHP em seu código recomeçou. Eu sou meio radical para falar sobre alguns assuntos, mas para mim existem basicamente duas desculpas para não fechar o seu código:

1 – Preguiça – É a mesma coisa (mesmo que o interpretador PHP trate isso de forma diferente ou não, eu relmente não me importo) que não fechar uma chave em estruturas de controle de apenas uma linha. Preguiça em programação, IMHO, só pode levar à problemas.

2 – Medo – O medo de ter uma vulnerabilidade de injeção de espaço em branco em sua aplicação.

Nenhuma das razões acima é válida para mim. Programadores são responsáveis pelo código que escrevem. É apenas natural que um programador seja seguro e tenha controle do seu código-fonte. Consequentemente se o código terá ou não um espaço em branco no final é uma responsabilidade do programador.

Evitar isso por não colocar a tag de fechamento PHP no fim do arquivo é uma péssima demonstração de falta de segurança pessoal. É uma solução fácil em uma área profissional onde “fácil” raramente – ou pelo menos raramente devia – se aplica à qualquer coisa. Infelizmente muitos programadores PHP têm o péssimo hábito de procurar soluções “fáceis” e “seguras” que não dependem diretamente deles.

Você pode achar minhas palavras muito duras, mas eu as considero verdadeiras de qualquer forma. Ah, e relaxe, isso é, apesar de tudo, a “opinião de um cara”.

Update: Estava dando uma olhada nos comentários da pesquisa do Twitter que gerou esse post e não pude deixar de adicionar isso: a Documentação Oficial do PHP declara que a tag de fechamento é opcional (em se tratando de código PHP puro, obviamente), enquanto que a Documentação de Estilo de Código do Zend Framework declara que ela “nunca é permitida”. Isto é um belo absurdo. Se a própria linguagem declara que algo é opcional qualquer ferramenta relacionada deveria respeitar isso.

Categories: Best Practices, Code, PHP, Security Tags:

Back to Teaching: I’ve missed that!

February 3rd, 2009 Galvão No comments

[pt-BR]

It’s been a while since I’ve last teached a class and I must confess that I’ve missed that a lot. It’s a funny thing to say for a guy that less than 5 years ago was terrified to speak to an audience. Teaching classes made me a better professional and human being and it’s something that I cherrish.

On February 09 I’ll be back at Sisnema (Porto Alegre) to teach “PHP – Module III”, which covers some “advanced” topics on the language, such as, but not limited to: Debugging, Error Treatment. OOP and Security.

On March 28 I’ll be back at Acctiva (Sao Paulo) for yet anothersecurity hands on, promoted by the always competent Tempo Real Eventos. On this one I’ll cover each and every vulnerability listed on OWASP’s TOP 10 and how to address them when developing web applications using PHP. More information and subscriptions @ http://www.temporealeventos.com.br/?area=88

Hope to see you all there!

Já faz um tempo desde a última vez em que dei aula e eu devo confessar que senti falta disso. É um troço meio engraçado de se dizer de um cara que há menos de 5 anos atrás ficava apavorado com a idéia de falar para um público. Dar aulas é algo que me tornou melhor como profissional e como ser humano e é uma atividade pela qual eu tenho muito carinho.

Dia 9 de Fevereiro estarei de volta na Sisnema (Porto Alegre) pra lecionar “PHP – Módulo III”, que cobre alguns tópicos “avançados” da linguagem, como por exemplo, mas não limitado à: Debugging, Tratamento de Erros, POO e Segurança.

Dia 28 de Março estarei de volta à Acctiva (São Paulo) para mais um mão na massa de segurança, promovido pela sempre competente Tempo Real Eventos. Neste curso vou cobrir no geral e em detalhes as vulnerabilidades listadas no OWASP Top 10 e como tratá-las no desenvolvimento de aplicações web com PHP. Maiores informações e inscrições @ http://www.temporealeventos.com.br/?area=88

Espero ver todos lá!

XVII SEMINCO

October 14th, 2008 Galvão No comments

[pt-BR]

Continuing my work on PHP and Security evangelizing, I’ll be at XVII SEMINCO, in Blumenau (SC) from November 4th to November 6th. Thanks to all people at FURB, specially Fernanda Gums, for the kind invitation!

Continuando meu trabalho de evangelização sobre PHP e Segurança, eu estarei no XVII SEMINCO, em Blumenau (SC) de 4 à 6 de Novembro. Obrigado à todo o pessoal da FURB, em especial à Fernanda Gums, pelo convite!

Categories: Announcements, Events, PHP, Security Tags:

Hands on PHP – Secure your application – 2nd Edition

March 14th, 2008 Galvão No comments

[pt-BR]

Due to the success of the first edition Tempo Real Eventos and myself will be doing a new edition of Hands on PHP – Secure your application workshop. This one will happen on May 31st, once again at Acctiva – 1159, Paulista Av. (click here to see it at Google Maps). For those who don’t already know this workshop presents best practices in developing PHP applications, explains how the three most common web exploits (SQL Injection, XSS and CSRF) work and how to make your web application less vulnerable to them.

It’s worthy to point out that the sooner you confirm your subscription (through the event’s link, above) the cheaper you’ll pay.

Devido ao sucesso da primeira edição, a Tempo Real Eventos e eu faremos uma nova edição do workshop Mão na Massa – PHP: Proteja sua aplicação. Esta edição acontecerá no dia 31 de Maio, novamente na Acctiva – Av. Paulista, 1159 (click aqui para ver no Google Maps). Para os que ainda não sabem, este workshop apresenta as boas prátcas de desenvolvimento de aplicações PHP, explica como funcionam as três vulnerabilidades web mais comuns (SQL Injection, XSS e CSRF) e como tornar sua aplicação menos vulnerável à elas.

Vale lembrar que quando mais cedo você realizar sua inscrição (através do link do evento, acima) menor será o valor da mesma.

PHP – Secure your application – A document

March 5th, 2008 Galvão No comments

[pt-BR]

I’ve made the document I’ve produced for the Hands on PHP – Secure your application event at Sao Paulo available on my website. I have plans to keep it updated and produce an English version of it, so keep an eye in here, I’ll announce it as soon as it’s available. The document is licensed under Creative Commons.

Disponibilizei em meu website o documento que produzi para o evento Mão na Massa PHP – Proteja sua aplicação. Vou mantê-lo sempre atualizado e pretendo lançar uma versão em inglês em breve. O documento é licenciado através da Creative Commons.

Categories: Announcements, PHP, Security Tags: ,

Hands on PHP – Secure your application

December 25th, 2007 Galvão No comments

[pt-BR]

On January 19th March 1st I’ll be at Acctiva in Sao Paulo (SP) at an event called Hands on PHP – Secure your application. On this workshop I’ll be presenting techniques to prevent the most common web exploits such as SQL Injection, XSS and CSRF. As usual you can check my public calendar here.

No dia 19 de Janeiro 1º de Março eu estarei na Acctiva em São Paulo (SP) em um evento chamado Mão na Massa PHP – Proteja sua aplicação. Neste workshop estarei apresentando técnicas para prevenir os ataques mais comuns na web, como SQL Injection, XSS e CSRF. Como de costume meu calendário público pode ser conferido aqui.

Categories: Announcements, Events, Security Tags: , , ,

PHP 5.2.4: More than 120 flaws solved

September 3rd, 2007 Galvão No comments

[pt-BR]

The PHP Group just lauched PHP 5.2.4 which addresses more than 120 flaws, including stability and security issues. The report comes from Heise Security.

O PHP Group acaba de lançar o PHP 5.2.4 que resolve mais de 120 falhas, incluindo questões de estabilidade e segurança. A notícia vem da Heise Security.

Categories: Announcements, Security Tags:

MSIE Security fiasco…

August 17th, 2007 Galvão No comments

[pt-BR]

According to Heise Security, Microsoft Internet Explorer 6 and 7 writes the user and password information in a comment inside HTML documents that are downloaded via FTP connection. The major problem here is that, not only this is quite absurd (a FTP software should never modify file contents), but it’s not a bug, this was implemented in MSIE on purpose, meaning that the person/persons who did it really thought that this would be a good idea…

When you stop to think that this is the same company that ships Operating Systems to people all over the globe this is quite scary…

De acordo com a Heise Security, o Microsoft Internet Explorer 6 e 7 escreve o usuário e senha em um comentário dentro de documentos HTML que foram baixados por conexão FTP. O maior problema é que, não apenas isso é um absurdo (Um software de FTP jamais deveria modificar conteúdo de arquivos), mas não é um bug, isso foi implementado no MSIE de propósito, significando que a pessoa/pessoas que fez isso realmente pensou que isso fosse uma boa idéia…

Se você parar pra pensar que esta é a mesma empresa que distribui Sistemas Operacionais para pessoas no mundo inteiro isto é bem assustador…

Categories: Security Tags: