Páginas

quinta-feira, 30 de junho de 2005

Dave's Port Reference: "Port Lookup" - Lista das portas TCP mais utilizadas.

terça-feira, 28 de junho de 2005

blaz > Protecao contra SQL Injection: "Prote�o contra SQL Injection"
Freecode Artigos >> O primeiro e maior bando de artigos do Brasil: "Anti SQL Injection
N�o pretendo desmistificar a pr�tica do SQL-Injection nesse artigo mas vou mostrar uma fun�o simples e eficiente que pode proteger o seu site desse tipo de ataque.



Autor: Herbert Araujo

O SQL-Injection �um ataque que visa enviar comandos nocivos �base de dados atrav�s dos inputs dos formul�rios ou atrav�s da query string (URL).

Caso o seu site n�o esteja 'vacinado' contra o SQL-Inject um ataque bem sucedido pode, entre outras coisas, dropar (apagar) uma tabela do banco; deletar todos os dados da tabela; conseguir senhas caso existam na tabela; inserir caracteres inv�lidos no banco; etc.

Regra: Valide sempre todo e qualquer tipo de dado que as p�ginas do site estiverem esperando, seja via formul�rio (post) ou via query string (get).

Bom, vamos �fun�o:

Primeiro declaro a fun�o, note que recebe um par�metro. Esse par�metro �o texto que vou validar. Como disse esse texto pode vir de um formul�rio ou passado atrav�s da URL.

function validatxt($txt) {
$inject=0;

Aqui declaro um array com as palavras que s�o consideradas nocivas para o banco, ou seja, comandos SQL. Todas as palavras do array ser�o recusadas. Voc�pode acrescentar outras palavras, por exemplo, se o seu formul�rio for de cadastro, voc�pode usar a fun�o para barrar algumas palavras que n�o queira cadastrar no banco como palavras reservadas ou palavr�es.

Note que existe um espa�o antes e depois de cada comando do sql. Isso �proposital j�que a palavra sozinha, por exemplo 'update' n�o causaria nenhum mal ao banco, se o comando fosse usado teria que ser feito da seguinte maneira: 'update set...', teria um espa�o entre o comando e o nome da talela.

$badword = array(' select','select ',' insert',' update','update ',' delete','delete ',' drop','drop ',' destroy','destroy ');

Agora eu fa�o um loop para percorrer todo o meu array de palavras. Eu controlo o loop com a fun�o sizeof(), que mostra quantos �ndices (palavras) tem meu array. A fun�o substr_count() verifica se a minha palavra atual $badword[$i] est�contida no texto que foi passado para a valida�o. Se a fun�o retornar true ent�o existe uma palavra do meu array dentro do texto passado. Nesse caso eu altero o valor da vari�vel $inject para 1.

for ($i=0;$i{
if (substr_count($txt,$badword[$i])!=0)
{
$inject=1;
}
}

Aspas, ap�strofe, sinal de menor ou de maior ou outros caracteres tamb�m devem ser validados pois s�o caracteres que n�o devem ser levados ao banco. Ao contr�rio do meu array de palavras inv�lidas eu declaro um array de caracteres v�lidos. Todo caractere que n�o faz parte do meu array ser�recusado pela fun�o. Aqui voc�tamb�m pode acrescentar ou retirar caracteres conforme a sua necessidade. Note que o �ltimo caractere �um espa�o em branco, isso �importante para que a fun�o aceite palavras compostas (guarda chuva �uma palavra composta). Se quiser recusar esse tipo de palavra retire o espa�o do final do array.

$charvalidos = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789�����������������������������������@#$%&(){}[]:;,.- ';

A fun�o strlen() controla o meu loop, ela retorna o n�mero de caracteres que a palavra que estou validando tem. A substr() retorna uma parte da palavra, nesse caso um caractere, �por aqui que eu percorro letra por letra da palavra a ser validada. Com a substr_count() eu verifico se o caractere �aceito ou n�o, se n�o for eu altero valor da vari�vel $inject para 1.

for ($i=0;$i{
$char = substr($txt,$i,1);
if (substr_count($charvalidos,$char)==0)
{
$inject=1;
}
}

Retorno a vari�vel $inject para informar �minha p�gina se a palavra �inv�lida ou tem algum caractere inv�lido.

return($inject);
// Fim da fun�o
}
?>

Ficou um pouco extenso mas foi necess�rio. Se ficou alguma d�vida me mande um e-mail. Espero que a fun�o venha a ser �til para algu�m.

Nesse link coloquei um exemplo funcional:
http://www.php.locaweb.com.br/araujo/inject.php

Aqui voc�faz o download do script pronto:
http://www.phpbrasil.com/scripts/script.php/id/1359"
XFN - XHTML Friends Network: "Xhtml Friends Network

XFN™ (XHTML Friends Network) is a simple way to represent human relationships using hyperlinks. In recent years, blogs and blogrolls have become the fastest growing area of the Web. XFN enables web authors to indicate their relationship(s) to the people in their blogrolls simply by adding a 'rel' attribute to their tags"
Este resumo não está disponível. Clique aqui para ver a postagem.
Injection (My)SQL via PHP: "Injection (My)SQL via PHP"

sexta-feira, 24 de junho de 2005

apache friends - xampp for windows: "XAMPP 1.4.14 published.

The news:

We've released a new version of XAMPP 1.4.14, including:

* Apache HTTPD 2.0.54,
* MySQL 4.1.12,
* FileZilla FTP Server 0.9.8a,
* phpMyAdmin 2.6.2-pl1,
* OpenSSL 0.9.7g,
* eAccelerator 0.9.3,
* and more ..."
Lansweeper : free software and hardware inventory for windows: "Runas utility (with password encryption)

* LSrunas can be used to run a command using another user account
and passing the password as a parameter

If you like lsrunas / lsrunase, you'll love MakeAdm, the easiest way to make something run as an administrator.
"

sexta-feira, 17 de junho de 2005

:.PC World - A revista de tecnologia mais lida do mundo: "Nos nao vamos pagar nada

Daniel dos Santos e Maria Isabel Moreira
15/06/2005 14:22

Reportagem feita por sugestao de leitores (Saiba mais).

Nem tudo o que voce usa no seu dia-a-dia precisa ser comprado. Acredite, ainda ha muita coisa boa de graca na internet. PC WORLD selecionou 30 programas e servicos em seis categorias - seguranca, utilitarios, escritorio, casa, internet e imagens. Confira!"

terça-feira, 14 de junho de 2005

PHP Help: Complete PHP Mail Tutorial - Everything You Need to Know: "Complete PHP Mail Tutorial - Everything You Need to Know"

quarta-feira, 8 de junho de 2005

SourceForge.net: Project Info - Maguma Open Studio: "Project: Maguma Open Studio: Summary

A PHP IDE that includes features for class browsing, ftp support, snippets, debugging and project management. The Open Source version of Maguma Studio."