LInks sobre Metodologias ageis de desenvolvimento

Os links abaixo mostram algumas mat?rias sobre metodologias ?geis de desenvolvimento:
http://www.dsc.ufcg.edu.br/~jacques/cursos/

http://www.agiledata.org/#AgileDataMethod

http://www.xispe.com.br/evento2004/curriculo.html

http://www.inf.aedb.br/article.php?sid=358

http://www.inf.aedb.br/print.php?sid=289

http://www.xispe.com.br/index.htmlhttp://pt.wikipedia.org/wiki/Engenharia_da_computação

http://www.async.com.br/~kiko/quali/

Criptografando comandos de FTP pelo OpenSSH

Neste artigo estarei dando um exemplo de como criptografar comandos de aut?ntica??o de FTP atrav?s de um t?nel pelo OpenSSH.

Considera??es iniciais:

S.O usado no teste:
Debian Gnu/Linux 2.4.29
Servidor SSH: OpenSSH 3.4p1
Servidor FTP: Proftpd 1.2.10

Para que nosso exemplo funcione ? neces?rio que o o cliente e o servidor tenham suporte a conex?es FTP ativo e o servidor precisa ter suporte para aceitar os comandos PORT para m?quinas que n?o sejam do canal de comandos de origem.

Considere o exemplo abaixo:

+———————-+
|Cliente – 192.168.0.1 |——–+
+———————-+ |
| +————————+
+———–| Servidor – 192.168.0.2 |
+————————+

1) Devemos abrir uma conex?o SSH com nosso servidor de FTP seguindo o exemplo abaixo:

ssh -p 2222 -l jaccon -L 2121:192.168.0.2:21 localhost

Explicando:
-p 2222: indica a porta do servidor OpenSSH em nosso Servidor
-l jaccon: usu?rio v?lido em nosso Servidor
-L: Port forwarding
2121: suposta porta local
:192.168.0.2:21 : endere?o do servidor ftp seguido da porta de comunica??o do servi?o FTP.
localhost: m?quina local

2) Depois de logado pelo SSH use o comando abaixo para iniciar a sess?o FTP:
ftp localhost 2121

Com isso o programa ssh criar? um t?nel pela porta 22 vinculando uma porta local (2121) para o servidor remoto na porta indicada ap?s o endere?o de IP.

Apesar de usar o pr?prio comando scp ou ainda o sftp est? ? mais uma op??o para comunica??o com um servidor de FTP.

At? Mais

Tutorial XPath XML

Colabora??o: Ot?vio Augusto Bizetto Penatti

Este tutorial ? uma tradu??o do tutorial de XPath da W3Schools (http://www.w3schools.com/), dispon?vel em http://www.w3schools.com/xpath/default.asp

Tutorial XPath
==============

XPath ? um conjunto de regras de sintaxe para definir partes de um documento XML.

XPath ? o elemento principal no padr?o W3C XSLT. Sem o conhecimento de XPath voc? n?o ser? capaz de criar documentos XSLT.

Introdu??o ao XPath
===================

XPath ? um conjunto de regras de sintaxe para definir partes de um documento XML.

O que ? XPath?
==============

– XPath ? uma sintaxe para definir partes de um documento XML
– XPath usa caminhos para definir elementos XML
– XPath define uma biblioteca de fun??es padr?o
– XPath ? o elemento principal em XSLT
– XPath n?o ? escrito em XML
– XPath ? um padr?o W3C

Como caminhos de arquivos tradicionais
======================================

XPath usa express?es de caminho para identificar n?s em um documento XML. Essas express?es de caminho se parecem muito com as express?es que voc? v? quando voc? trabalha num sistema de arquivos de um computador:

w3schools/xpath/default.asp

Exemplo de XPath
================

Veja esse documento XML simples:

< ?xml version="1.0" encoding="ISO-8859-1"?>


Empire Burlesque
Bob Dylan 10.90


Hide your heart
Bonnie Tyler 9.90


Greatest Hits
Dolly Parton 9.90

A express?o XPath abaixo seleciona o elemento RAIZ catalog:

/catalog

A express?o XPath abaixo seleciona todos os elementos cd do elemento catalog:

/catalog/cd

A express?o XPath abaixo seleciona todos os elementos price de todos os elementos cd do elemento catalog:

/catalog/cd/price

Nota: Se o caminho come?a com uma barra ( / ) ele representa um caminho absoluto para um elemento!

XPath define uma biblioteca de fun??es padr?o
=============================================

XPath define uma biblioteca de fun??es padr?o para trabalhar com strings, n?meros e express?es booleanas.

A express?o XPath abaixo seleciona todos os elementos cd que tem um elemento price que tem um valor maior que 10.80:

/catalog/cd[price>10.80]

XPath ? usado em XSLT
=====================

XPath ? o elemento principal do padr?o XSLT. Sem o conhecimento de XPath voc? n?o ser? capaz de criar documentos XSLT.

Voc? pode ler mais sobre XSLT no nosso tutorial XSLT em ingl?s (http://www.w3schools.com/xsl/default.asp) ou em portugu?s (xslt.htm).

XPath ? um padr?o W3C
=====================

XPath foi liberado com uma recomenda??o W3C em 16 de novembro de 1999 como uma linguagem para endere?ar partes de um documento XML.

XPath foi desenvolvido para ser usado por XSLT, XPointer e outros softwares XML parsing.

Voc? pode ler mais sobre padr?es XML e XSl em nosso tutorial W3C (http://www.w3schools.com/w3c/default.asp)

Sintaxe XPath
=============

XPath usa express?es de caminho para localizar n?s dentro de documentos XML.

Documento XML de Exemplo
========================

N?s usaremos esse documento XML simples para descrever a sintaxe XPath:

< ?xml version="1.0" encoding="ISO-8859-1"?>


Empire Burlesque
Bob Dylan 10.90


Hide your heart
Bonnie Tyler 9.90


Greatest Hits
Dolly Parton 9.90

Localizando N?s
===============

Documentos XML podem ser representados como ?rvores de n?s (muito similar ? vis?o em ?rvore das pastas do seu computador).

XPath usa uma express?o padr?o para identificar n?s em um documento XML. Um padr?o XPath ? uma lista nomes de elementos filhos separada por barras que descreve o caminho atrav?s do documento XML. O padr?o “seleciona” elementos que combinam com o caminho.

A express?o XPath a seguir seleciona todos os elementos pre?o de todos os elementos cd do elemento catalog:

/catalog/cd/price

Nota: Se o caminho come?a com uma barra ( / ) ele representa um caminho absoluto para um elemento!

Nota: Se o caminho come?a com duas barras ( // ) ent?o todos os elementos no documento que se encaixam no crit?rio ser?o selecionados (mesmo que eles estejam em n?veis diferentes da ?rvore XML)!

A express?o XPath a seguir seleciona todos os elementos cd no documento:

//cd

Selecionando elementos desconhecidos
====================================

Curingas ( * ) podem ser usados para selecionar elementos XML desconhecidos.

A express?o XPath a seguir seleciona todos os elementos filhos de todos os elementos cd do elemento catalog:

/catalog/cd/*

A express?o XPath a seguir seleciona todos os elementos price que s?o elementos netos do elemento catalog:

/catalog/*/price

A express?o XPath a seguir seleciona todos os elementos price que t?m dois ancestrais:

/*/*/price

A express?o XPath a seguir seleciona todos os elementos no documento:

//*

Selecionando Se??es
===================

Usando-se colchetes numa express?o XPath voc? pode especificar um elemento adiante.

A express?o XPath a seguir seleciona o primeiro elemento cd filho do elemento catalog:

/catalog/cd[1]

A express?o XPath a seguir seleciona o ?ltimo elemento cd filho do elemento catalog (Nota: n?o existe a fun??o first()):

/catalog/cd[last()]

A express?o XPath a seguir seleciona todos os elementos cd do elemento catalog que tem um elemento price:

/catalog/cd[price]

A express?o XPath a seguir seleciona todos os elementos cd do elemento catalog que tem um elemento price com valor de 10.90:

/catalog/cd[price=10.90]

A express?o XPath a seguir seleciona todos os elementos price de todos os elementos cd do elemento catalog que tem um elemento price com valor de 10.90:

/catalog/cd[price=10.90]/price

Selecionando v?rios caminhos
============================

Usando o operador “|” numa express?o XPath voc? pode selecionar v?rios caminhos.

A express?o XPath a seguir seleciona todos os elementos title e artist do elemento cd do elemento catalog:

/catalog/cd/title | /catalog/cd/artist

A express?o XPath a seguir seleciona todos os elementos title e artist do documento:

//title | //artist

A express?o XPath a seguir seleciona todos os elementos title, artist e price do documento:

//title | //artist | //price

A express?o XPath a seguir seleciona todos os elementos title do elemento cd do elemento catalog, e todos os elementos artist no documento:

/catalog/cd/title | //artist

Selecionando atributos
======================

Em XPath todos os atributos s?o especificados pelo prefixo “@”.

Esta express?o XPath seleciona todos os atributos chamados country:

//@country

Esta express?o XPath seleciona todos os elementos cd que tem um atributo chamado country:

//cd[@country]

Esta express?o XPath seleciona todos os elementos cd que tem algum atributo:

//cd[@*]

Esta express?o XPath seleciona todos os elementos cd que tem um atributo chamado country com valor ‘UK’:

//cd[@country=’UK’]

XPath Location Paths (Caminho Locais XPath)
===========================================

Uma express?o de caminho local (location path) resulta em um conjunto de n?s.

Express?o de Caminho Local
==========================

Um caminho local pode ser absoluto ou relativo.

Um caminho local absoluto come?a com uma barra ( / ) e um caminho local relativo n?o. Em ambos os casos o caminho local consiste de um ou mais n?veis de localiza??o, cada um separado por uma barra:

Um caminho local absoluto:

/step/step/…

Um caminho local relativo:

step/step

Os n?veis de localiza??o s?o avaliados em ordem um de cada vez, da esquerda pra direita. Cada n?vel ? avaliado segundo os n?s no conjunto de n?s atual. Se o caminho local ? absoluto, o conjunto de n?s atual ? o n? raiz. Se o caminho local ? relativo, o conjunto de n?s atual consiste do n? onde a express?o est? sendo usada. N?veis de localiza??o consistem de:
– um eixo (especifica a rela??o de ?rvore entre os n?s selecionados pelo n?vel de localiza??o e o n? atual)
– um n? teste (especifica o tipo de n? e o nome expandido dos n?s selecionados pelo n?vel de localiza??o)
– zero ou mais predicados (usa express?es para refinar mais o conjunto de n?s selecionado pelo n?vel de localiza??o)

A sintaxe para um n?vel de localiza??o ?:

nomeeixo::noteste[predicado]

Exemplo:

child::price[price=9.90]

Eixos e N?s de Teste
====================

Um eixo define um conjunto de n?s relativo ao n? atual. Um n? de teste ? usado para identificar um n? dentro de um eixo. N?s podemos executar um n? de teste por nome ou por tipo.

|| Nome do Eixo | Descri??o ||
| ancestor | Cont?m todos os ancestrais (pais, av?s, etc) do n? atual. Nota: Este eixo incluir? sempre o n? raiz, a menos que o n? atual seja o n? raiz |
| ancestor-or-self | Cont?m o n? atual mais todos os seus ancestrais (pai, av?, etc) |
| attribute | Cont?m todos os atributos do n? atual |
| child | Cont?m todos os filhos do n? atual |
| descendant | Cont?m todos os descendentes (filhos, netos, etc) do n? atual. Nota: Este eixo nunca cont?m atributos ou n?s namespace |
| descendant-or-self | Cont?m o n? atual mais todos os seus descendentes (filhos, netos, etc) |
| following | Cont?m tudo no documento depois da tag de fechamento do n? atual |
| following-sibling | Cont?m todos os irm?os depois do n? atual. Nota: Se o n? atual ? um n? atributo ou um n? namespace, este eixo estar? vazio |
| namespace | Cont?m todos os n?s namespace do n? atual |
| parent | Cont?m o pai do n? atual |
| preceding | Cont?m tudo no documento que est? antes da tag de abertura do n? atual |
| preceding-sibling | Cont?m todos os irm?os antes do n? atual. Nota: Se o n? atual ? um n? atributo ou um n? namespace, este eixo estar? vazio |
| self | Cont?m o n? atual |

Exemplos

|| Exemplo | Resultado ||
| child::cd | Seleciona todos os elementos cd que s?o filhos do n? atual (se o n? atual n?o tem cds filhos, ser? selecionado um conjunto vazio de n?s) |
| attribute::src | Seleciona o atributo src do n? atual (se o n? atual n?o tem atributo src, ser? selecionado um conjunto vazio de n?s) |
| child::* | Seleciona todos os elementos filhos do n? atual |
| attribute::* | Seleciona todos os atributos do n? atual |
| child::text() | Seleciona o n? texto filho do n? atual |
| child::node() | Seleciona todos os filhos do n? atual |
| descendant::cd | Seleciona todos os elementos cd descendentes do n? atual |
| ancestor::cd | Seleciona todos os cds ancestrais do n? atual |
| ancestor-or-self::cd | Seleciona todos os cds ancestrais do n? atual e, se o n? atual ? um elemento cd, seleciona o n? atual tamb?m |
| child::*/child::price | Seleciona todos os pre?os netos do n? atual |
| / | Seleciona a raiz do documento |

Predicados
==========

Um predicado filtra um conjunto de n?s em um novo conjunto de n?s. Um predicado fica dentro de colchetes ( [] ).

Exemplos

|| Exemplo | Resultado ||
| child::price[price=9.90] | Seleciona todos os elementos price que s?o filhos do n? atual com um pre?o igual a 9.90 |
| child::cd[position()=1] | Seleciona o primeiro cd filho do n? atual |
| child::cd[position()=last()] | Seleciona o ?ltimo cd filho do n? atual |
| child::cd[position()=last()-1] | Seleciona o pen?ltimo cd filho do n? atual |
| child::cd[position()<6] | Seleciona os primeiros cinco cds filhos do n? atual |
| /descendant::cd[position()=7] | Seleciona o s?timo elemento cd no documento |
| child::cd[attribute::type=”classic”] | Seleciona todos os cds filhos do n? atual que t?m um atributo tipo com o valor “classic” |

Sintaxe Abreviada dos Caminhos Locais
=====================================

Abrevia??es podem ser usadas para descrever um caminho local.

A abrevia??o mais importante ? que child:: pode ser omitido de um n?vel de localiza??o.

|| Abrev. | Significado | Exemplo ||
| nada | child:: | cd ? o mesmo que child::cd |
| @ | attribute:: | cd[@type=”classic”] ? o mesmo que child::cd[attribute::type=”classic”] |
| . | self::node() | .//cd ? o mesmo que self::node()/descendant-or-self::node()/child::cd |
| .. | parent::node() | ../cd ? o mesmo que parent::node()/child::cd |
| //// | /descendant-or-self::node()/ | //cd ? o mesmo que /descendant-or-self::node()/child::cd |

Exemplos

|| Exemplo | Resultado ||
| cd | Seleciona todos os elementos cd que s?o filhos do n? atual |
| * | Seleciona todos os elementos filhos do n? atual |
| text() | Seleciona todos os n?s textos filhos do n? atual |
| @src | Seleciona o atributo src do n? atual |
| @* | Seleciona todos os atributos do n? atual |
| cd[1] | Seleciona o primeiro cd filho do n? atual |
| cd[last()] | Seleciona o ?ltimo cd filho do n? atual |
| */cd | Seleciona todos os cds netos do n? atual |
| /book/chapter[3]/para[1] | Seleciona o primeiro par?grafo do terceiro cap?tulo do livro |
| //cd | Seleciona todos os elementos cds descendentes da raiz do documento e assim seleciona todos os elementos cds no mesmo documento como o n? atual |
| . | Seleciona o n? atual |
| .//cd | Seleciona os elementos cds descendentes do n? atual |
| .. | Seleciona o pai do n? atual |
| ../@src | Seleciona o atributo src do pai do n? atual |
| cd[@type=”classic”] | Seleciona todos os cds filhos do n? atual que t?m o atributo “type” com o valor “classic” |
| cd[@type=”classic”][5] | Seleciona o quinto cd filho do n? atual que tem o atributo “type” com o valor “classic” |
| cd[5][@type=”classic”] | Seleciona o quinto cd filho do n? atual se esse filho tem o atributo “type” com valor “classic” |
| cd[@type and @country ] | Seleciona todos os cds filhos do n? atual que t?m ambos os atributos “type” e “country” |

Express?es XPath
================

XPath suporta express?es num?ricas, de igualdade, relacionais e booleanas.

Express?es Num?ricas
====================

Express?es num?ricas s?o usadas para realizar opera??es aritm?ticas em n?meros.

|| Operador | Descri??o | Exemplo | Resultado ||
| + | Adi??o | 6 + 4 | 10 |
| – | Subtra??o | 6 – 4 | 2 |
| * | Multiplica??o | 6 * 4 | 24 |
| div | Divis?o | 8 div 4 | 2 |
| mod | M?dulo (resto da divis?o) | 5 mod 2 | 1 |

Nota: XPath sempre converte cada operando em um n?mero antes de realizar um express?o aritm?tica.

Express?es de Igualdade
=======================

Express?es de igualdade s?o usadas para testar a igualdade entre dois valores.

|| Operador | Descri??o | Exemplo | Resultado ||
| = | Igual | price=9.80 | true (se o pre?o ? igual a 9.80) |
| != | Diferente | price!=9.80 | false |

Testando um conjunto de n?s
===========================

Se ? testada a igualdade do valor de teste em rela??o a um conjunto de n?s, o resultado ? verdadeiro se o conjunto de n?s cont?m algum n? com um valor igual ao valor de teste.

Se ? testada a desigualdade do valor de teste em rela??o a um conjunto de n?s, o resultado ? verdadeiro se o conjunto de n?s cont?m algum n? com um valor diferente ao valor de teste.

O resultado ? que o conjunto de n?s pode ser igual e diferente ao mesmo tempo!!!

Express?es Relacionais
======================

Express?es relacionais s?o usadas para comparar dois valores.

|| Operador | Descri??o | Exemplo | Resultado ||
| < | Menor | price<9.80 | false (se o pre?o ? 9.80) |
| <= | Menor ou igual | price<=9.80 | true |
| > | Maior | price>9.80 | false |
| >= | Maior ou igual | price>=9.80 | true |

Nota: XPath sempre converte cada operando em um n?mero antes de fazer a avalia??o.

Express?es Booleanas
====================

Express?es booleanas s?o usadas para comparar dois valores.

|| Operador | Descri??o | Exemplo | Resultado ||
| or | Ou | price=9.80 or price=9.70 | true (se o pre?o ? 9.80) |
| and | E | price< =9.80 and price=9.70 | false |Fun??es XPath
=============

XPath cont?m uma biblioteca de fun??es para convers?o de dados.

Biblioteca de Fun??es XPath
===========================

A biblioteca de fun??es XPath cont?m um conjunto de fun??es centrais para convers?o e tradu??o de dados.

Fun??es para Conjunto de N?s
============================

|| Nome | Descri??o | Sintaxe ||
| count() | Retorna o n?mero de n?s num conjunto de n?s | number=count(node-set) |
| id() | Seleciona elementos pelo seu ID ?nico | node-set=id(value) |
| last() | Retorna o n?mero da posi??o do ?ltimo n? na lista de n?s processados | number=last() |
| local-name() | Retorna a parte local de um n?. Um n? normalmente consiste de um prefixo, os dois pontos, seguidos pelo nome local | string=local-name(node) |
| name() | Retorna o nome do n? | string=name(node) |
| namespace-uri() | Retorna o namespace URI de um n? espec?fico | uri=namespace-url(node) |
| position() | Retorna a posi??o na lista de n?s do n? que est? sendo processado atualmente | number=position() |

Fun??es de Strings
==================

|| Nome | Descri??o | Sintaxe | Exemplo ||
| concat() | Retorna a concatena??o de todos os argumentos | string=concat(val1,val2,…) | concat(‘The’,’ ‘,’XML’) -> Resultado: ‘The XML’ |
| contains() | Retorna verdadeiro se a segunda string est? contida dentro da primeira string, sen?o retorna falso | bool=contains(val,substr) | contains(‘XML’,’X’) -> Restultado: true |
| normalize-space() | Remove espa?os antes e depois de uma string e substitui todas as seq??ncias internas de espa?os por um ?nico espa?o em branco | string=normalize-space(string) | normalize-space(‘ The XML ‘) -> Resultado: ‘The XML’ |
| starts-with() | Retorna verdadeiro se a primeira string come?a com a segunda string, sen?o retorna falso | bool=starts-with(string,substr) | starts-with(‘XML’,’X’) -> Resultado: true |
| string() | Converte o argumento em string | string(value) | string(314) -> Resultado: ‘314’ |
| string-length() | Retorna o n?mero de caracteres de uma string | number=string-length(string) | string-length(‘Beatles’) -> Resultado: 7 |
| substring() | Retorna um peda?o da string | string=substring(string,start,length) | substring(‘Beatles’,1,4) -> Resultado: ‘Beat’ |
| substring-after() | Retorna a parte da string que aparece depois do argumento substr | string=substring-after(string,substr) | substring-after(’12/10′,’/’) -> Resultado: ’10’ |
| substring-before() | Retorna a parte da string que aparece antes do argumento substr | string=substring-before(string,substr) | substring-before(’12/10′,’/’) -> Resultado: ’12’ |
| translate() | Realiza uma substitui??o caracter por caracter. Ela procura no argumento ‘value’ os caracteres contidos na ‘string1’ e substitui cada caractere pelo caractere da mesma posi??o na ‘string2′ | string=translate(value,string1,string2) | translate(’12:30′,’30’,’45’) ——-> Resultado: ’12:45′ —————– translate(’12:30′,’03’,’54’) ——-> Resultado: ’12:45′ —————– translate(’12:30′,’0123′,’abcd’) ——-> Resultado: ‘bc:da’ |

Fun??es Num?ricas
=================

|| Nome | Descri??o | Sintaxe | Exemplo ||
| ceiling() | Retorna o menor inteiro que n?o ? menor que o argumento (fun??o teto) | number=ceiling(number) | ceiling=(3.14) -> Resultado: 4 |
| floor() | Retorna o maior inteiro que n?o ? maior que o argumento (fun??o ch?o) | number=floor(number) | floor(3.14) -> Resultado: 3 |
| number() | Converte o argumento em um n?mero | number=number(value) | number(‘100’) -> Resultado: 100 |
| round() | Arredonda o argumento para o inteiro mais pr?ximo | integer=round(number) | round(3.14) -> Resultado: 3 |
| sum() | Retorna o valor total de um conjunto de valores num?ricos num conjunto de n?s | number=sum(nodeset) | sum(/cd/price) |

Fun??es Booleanas
=================

|| Nome | Descri??o | Sintaxe ||
| boolean() | Converte o argumento ‘value’ em Booleano e retorna verdadeiro ou falso | bool=boolean(value) |
| false() | Retorna falso | false() Exemplo: number(false()) -> Resultado: 0 |
| lang() | Retorna verdadeiro se o argumento ‘language’ ? igual ao idioma do elemento xsl:lang, sen?o retorna falso | bool=lang(language) |
| not() | Retorna verdadeiro se o argumento ‘condition’ ? falso, e falso se o argumento ? verdadeiro | bool=not(condition) Exemplo: not(false()) |
| true() | Retorna verdadeiro | true() Exemplo: number(true()) -> Resultado: 1 |

Exemplos XPath
==============

N?s iremos usar o cat?logo de CDs do nosso tutorial de XML para demonstrar alguns exemplos XPath.

O cat?logo de CDs
=================

Se voc? estudou o nosso tutorial de XML voc? lembrar? de documento XML:
(Uma fra??o do catalogo)

< ?xml version="1.0" encoding="ISO-8859-1"?>


Empire Burlesque
Bob Dylan
USA
Columbia 10.90 1985


Hide your heart
Bonnie Tyler
UK
CBS Records 9.90 1988

.
.
.
.

Se voc? tem o IE 5 ou superior voc? pode ver o cdcatalog.xml (http://www.w3schools.com/xpath/cdcatalog.xml).

Selecionando N?s
================

N?s demonstraremos como selecionar n?s de um documento XML usando a fun??o selectNodes no Internet Explorer. Esta fun??o tem uma express?o de caminho local como argumento:

xmlobject.selectNodes(Xpath expression)

Selecionando N?s cd
===================

O exemplo a seguir seleciona somente o primeiro n? do cat?logo de cds:

xmlDoc.selectNodes(“/catalog/cd[0]”)

Se voc? tem o IE 5 ou superior voc? pode fazer mais testes (http://www.w3schools.com/xpath/tryit.asp?filename=try_xpath_select_cdnodes_first).

Nota: IE 5 implementou que [0] deveria ser o primeiro n?, mas de acordo com o padr?o W3C, deve ser [1].

Selecionando N?s price
======================

O exemplo a seguir seleciona todos os n?s price do cat?logo de cds:

xmlDoc.selectNodes(“/catalog/cd/price”)

Se voc? tem o IE 5 ou superior voc? pode fazer mais testes (http://www.w3schools.com/xpath/tryit.asp?filename=try_xpath_select_pricenodes).

Selecionando o texto dos N?s price
==================================

O exemplo a seguir seleciona apenas o texto dos n?s price:

xmlDoc.selectNodes(“/catalog/cd/price/text()”)

Se voc? tem o IE 5 ou superior voc? pode fazer mais testes (http://www.w3schools.com/xpath/tryit.asp?filename=try_xpath_select_pricenodes_text).

Selecionando N?s cd com price>10.80
===================================

O exemplo a seguir seleciona todos os n?s cd com price>10.80:

xmlDoc.selectNodes(“/catalog/cd[price>10.80]”)

Se voc? tem o IE 5 ou superior voc? pode fazer mais testes (http://www.w3schools.com/xpath/tryit.asp?filename=try_xpath_select_pricenodes_high).

Selecionando N?s price com price>10.80
======================================

O exemplo a seguir seleciona todos os n?s price com price>10.80:

xmlDoc.selectNodes(“/catalog/cd[price>10.80]/price”)

Se voc? tem o IE 5 ou superior voc? pode fazer mais testes (http://www.w3schools.com/xpath/tryit.asp?filename=try_xpath_select_pricenodes_1080).
——————————————————————–
Colabore com a Dicas-L. Publique seu coment?rio sobre esta mensagem
em http://www.Dicas-L.unicamp.br/dicas-l/20050314.php
——————————————————————–
As mensagens da lista Dicas-L s?o veiculadas diariamente
para 26859 assinantes.

Todas as mensagens da Dicas-L ficam armazenadas em
http://www.Dicas-L.unicamp.br/dicas-l/

A redistribui??o desta e outras mensagens da lista Dicas-L pode
ser feita livremente segundo a licen?a Creative Commons
http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt

Configurando o Proftpd 1.2.10

Neste artigo iremos mostrar como configurar o Proftpd 1.2.10 atrav?s do c?digo fonte:

1) baixe o c?digo fonte atrav?s do site do projeto:
ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.bz2

2) Descompacte o pacote, em nosso caso precisamos do bunzip2 para descompactar pois baixamos o pacote bz2:

#tar -jxvf proftpd-1.2.10.tar.bz2
#cd proftpd-1.2.10
#./configure
#make
#make install

3) Para iniciar o proftpd use
#/usr/local/sbin/proftpd

4) O arquivo de configura??o fica em /usr/local/etc/proftpd.conf

Espero ter ajudado

Configurando o snirffer Ettercap 0.6.b pelo c?digo fonte

Neste tutorial iremos mostrar como configurar o sniffer Ettercap 0.6.b.

1) Pacotes necess?rios:
libncurses5-dev
dialog

2) Instalar as bibliotecas necess?rias:

#apt-get install libncurses5-dev

3) Descompactar e instalar o c?digo fonte do ettercap
#tar -zxvf ettercap-0.6.b.tar.gz
#./configure –disable-gtk
#make
#make install

4) Instalar os plugins
#cd ettercap-0.6.b/plugins
#make
#make install

Com isso voc? conseguir? instalar f?cilmente o Ettercap 0.6.b

Exmplo de algoritmo para solu??o da Torre de Hanoi

to solve (present, final)
{
1 is maximum the total number of discs
2 are destiny the final site of maximum
3 are maximum disc =
repeat
4 while disc > 0 does
5 if disc already is in destiny,
6 or, to move disc to destiny are successful then
7 if maximum disc = then
8 decremente maximum in 1
9 if maximum = 0 then
10 finish // ready solution
aim-if
11 is destiny the final site of maximum
aim-if
si_no
12 are destiny the site different from destiny and from
site in where it is disc
aim-if
13 decremente disc in 1
aim-while
14 are p and q the sites different from destiny
15 are disc the minor of discs of the tops of p and q
16 are destiny the site between p and q with the greater top
aim-repeat
}

Exploit para phpBB 2.0.12

Este artigo foi retirado do newsletter do Security Focus.

phpBB 2.0.12 Session Handling Administrator Authentication Bypass -SIMPLIFIED- Inbox

Wesley aka PPC to bugtraq
More options Mar 4

———————————–

phpBB 2.0.12 Session Handling
Administrator Authentication
Bypass EXPLOIT -SIMPLIFIED-
– By PPC^Rebyte

———————————–

03maa2005

** NEDERLANDSE VERSIE ONDERAAN / DUTCH VERSION BELOW **

[ ENGLISH VERSION ]

*** Status
__________

phpBB has already been informed about this exploit and has released a
‘critical update’ on 27 februari 2005, however most forums are still running
version 2.0.12 or lower.

VULNERABLE:
– 2.0.x –> 2.0.12

IMMUNE:
– 2.0.13 or newer

1* Intro
________

The discoverer of this bug is unknown, says “Paiserist” who wrote a C exploit
for this bug.

Link to Paisterist’s exploit at Packetstormsecurity:
http://packetstormsecurity.org/0503-exploits/phpbbsession.c

This program didn’t work as it should on my pc, so I had to find out a way
for myself to exploit the bug manually.
This seemed to be much easier than compiling that C exploit and fool around
with it until it eventually still doesn’t work (in my case).
This simplified manual method I’ll describe can also be used for Internet
Explorer or other browsers instead of only Mozilla/Firefox.

2* The bug
__________

We’re going to edit a cookie so that when you visit a certain forum another
time you will get logged in having admin rights. This is possible due to a
bug in includes/sessions.php
–> if( $sessiondata[‘autologinid’] == $auto_login_key )

3* Preparation
______________

1. Register at forum?

2. Log in with account
+ UNCHECK “Log in automatically”

3. Close browser to be sure a cookie is made.

4. Locate cookie
*firefox: X:\Documents and Settings\Name\Application
Data\Mozilla\Firefox\Profiles\profile.default\cookies.txt
–> search the .txt for the domainname (domain.tld)
–> default cookiename = phpbbmysql
*iexplorer: X:\Documents and Settings\Name\Cookies\[email protected]
–> default cookiename = phpbbmysql

4* Let’s Xploit!
________________

Open the cookie in a text editor and search a line that resembles:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3B
s%3A6%3A%22userid%22%3Bs%3A1%3A%22X%22%3B%7D

|
[ your ‘user id’ ] ____|

Replace this with:

a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bb%3A1%3B
s%3A6%3A%22userid%22%3Bs%3A1%3A%222%22%3B%7D

|
[ 2 = ‘user id’ of admin ] ____|

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Save cookie and close.
Open your browser and surf to forum.

You’ll now be automatically logged in having admin right 🙂

5* Solution
___________

* Update phpBB to version 2.0.13

– or –

* in “includes/sessions.php” replace code:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

if( $sessiondata[‘autologinid’] == $auto_login_key )

replace with:

if( $sessiondata[‘autologinid’] === $auto_login_key )

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

6* Outro
________

THE.END

Greetings 2 everyone at Rebyte and the whole Belgian scene !!
Additional greetings 2 Paisterist for the original C exploit !

— PPC^Rebyte —
[email protected]

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[ NEDERLANDSE VERSIE ]

*** Status
__________

phpBB is ge?nformeerd over deze exploit en heeft een ‘critical update’
gelanceerd op 27 februari, maar de meeste forums draaien nog steeds op
versie 2.0.12 of lager.

KWETSBAAR:
– 2.0.x tot 2.0.12

IMMUUN:
– 2.0.13 of nieuwer

1* Intro
________

De ontdekker van de bug is onbekend, meldt “Paisterist” die een C exploit
heeft geschreven voor deze bug.

Link naar Paisterist’s exploit op Packetstormsecurity:
http://packetstormsecurity.org/0503-exploits/phpbbsession.c

Dit programma werkte voor geen klop op mijn pc, dus heb ik zelf een manier
gezocht, door middel van de exploit, om de bug handmatig te exploiteren.
Dit ging eigenlijk veel sneller dan de C exploit te moeten compileren
en ermee rond te moeten klungelen terwijl het uiteindelijk niet goed werkt
(in mijn geval).
De vereenvoudigde handmatige methode die ik omschrijf kan tevens gebruikt
worden voor Internet Explorer of andere browsers ipv alleen Firefox.

2* Werking
__________

We gaan een cookie zo aanpassen dat wanneer je een bepaald forum nog eens
bezoekt je ingelogd wordt met admin rechten door een bug in sessions.php
–> if( $sessiondata[‘autologinid’] == $auto_login_key )

3* Voorbereiding
________________

1. Eventueel Registreren op forum

2. Inloggen met account
+ Automatisch Inloggen UITVINKEN

3. Browser sluiten zodat er zeker een cookie wordt aangemaakt

4. Cookie lokaliseren
*bij firefox: X:\Documents and Settings\Name\Application
Data\Mozilla\Firefox\Profiles\profile.default\cookies.txt
–> zoek in de .txt naar de domeinnaam (domain.tld)
–> standaard cookienaam = phpbbmysql
*bij iexplorer: X:\Documents and Settings\Name\Cookies\[email protected]
–> standaard cookienaam = phpbbmysql

4* Let’s Xploit!
________________

Open de cookie in een teksteditor en zoek naar een lijn die gelijkt op:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3B
s%3A6%3A%22userid%22%3Bs%3A1%3A%22X%22%3B%7D

|
[ je ‘user id’ ] ____|

Vervang dit door:

a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bb%3A1%3B
s%3A6%3A%22userid%22%3Bs%3A1%3A%222%22%3B%7D

|
[ 2 = ‘user id’ van admin ] ____|

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Cookie opslaan en sluiten.
Browser openen en naar forum surfen.

Normaal wordt je nu ingelogd met admin rechten 🙂

5* Oplossing
____________

* phpBB updaten naar 2.0.13

– of –

* in includes/sessions.php code vervangen:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

if( $sessiondata[‘autologinid’] == $auto_login_key )

vervangen door:

if( $sessiondata[‘autologinid’] === $auto_login_key )

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

6* Outro
________

THE.END

Greetings 2 everyone at Rebyte en de hele Belgische scene !!
Additional greetings 2 Paisterist voor de originele C exploit !

— PPC^Rebyte —
[email protected]

Usando comando Cut

O comando Cut ? usado para filtrar textos digamos que voc? queira listar todos os usu?rios do arquivo /etc/passwd e ainda troca-se todas as informa??es que est?o em letra min?sculo para ma?uscula, siga o exemplo abaixo:

cat etc/passwd |cut -d: -f1| sort -r| tr a-z A-Z > /usuarios