Login   Register  
PHP Classes
elePHPant
Icontem

File: readme.txt

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Marcelo Costa  >  securityAuthParam  >  readme.txt  >  Download  
File: readme.txt
Role: Documentation
Content type: text/plain
Description: document
Class: securityAuthParam
Encrypt and verify URL parameters
Author: By
Last change:
Date: 2009-12-16 16:08
Size: 2,789 bytes
 

Contents

Class file image Download
securityAuthParam é uma classe que comtempla uma serie de soluções que 
permite ofuscar de uma forma segura parametros de "strings" e "arrays".

Nasceu da necessidade básica de ofuscar "query strings" e parametros de formulários
para impedir que uma alteração manual em parametros de "query strings" e ao mesmo
tempo adicionar um hash HMAC a partir de um "salt" para verificação da autenticidade
dos parametros passados.

Uma das mais indicadas utilização é a passgem de parametros para aplicações em ajax.

supondo uma query string usual :

index.php?userID=1&expire=31-12-2020 

alterando a query string para :

index.php?userID=2&expire=31-12-2020

Teriamos uma falha de segurança que permitiria um usuario acessar dados de outros ou mesmo
aletrar uma data de expiração de uma consulta, mas adicionando um parametro de autenticidade uma 
verificação pode ser fornecida.

index.php?userID=1&expire=31-12-2020&auth=hashHMAC(querystring)

os hash HMAC suportados são todos os possiveis no PHP sendo mais usuados MD5,SHA1,RIMPED160 e SHA256,
o valor default eh RIMPED160 por fornecer o melhor custo/beneficio entre velocidade e segurança.

Quanto mais forte o hash encripado maior se torna a string , valores de ate 2.000 (dois mil) caracteres
são suportados pelos navegadores e webservers, o uso de ZLIB ajuda a compactar a string sem perda
significativa do desempenho e permite que se adicione "n" parametros que contribuem para a segurança da
ofuscação , seja um parametro randomico ou uma data de expiração, patricamente não alterado o tamanho 
final da string. 

index.php?param = ofuscate auth parameter array

A codificação atente as RFC 4648 e RFC 2045 sendo segura para ser utilizada inclusive por SSL

A classe tambem permite que se crie xml para request e response com parametros de autenticação:

// XML request
$request ='<response action="post">';
$request .="<random>". rand() ."</random>";
$request .="<expiration>". $expiration ."</expiration>";
$request .="<userID>".$UserID."</UserID>";
$request .="</response >";

// Load the XML request info DOM for Authentic param.
$xmlObject = new DOMDocument('1.0', 'UTF-8');
$xmlObject->formatOutput = true;
$xmlObject->loadXML($request);
$Nodes = $xmlObject->getElementsByTagName('response');

foreach ($Nodes as $Node) {
    signNode( $xmlObject, $Node, $authparam );
}

echo $xmlObject->saveXML();

Parametros de configuração

constantes:

// chave privada
define("PRIVATEKEY", "my private key");

// modo de encripação do hash
define("HASHMODE","ripemd160");// default ripemd160

// tipo de parametros de retorno :

//array ofuscado
define("AUTHMODE", "AUTHARRAY");// default opcional

// hash hmac ofuscado
define("AUTHMODE", "AUTHSTR");// opcional