PHP Classes
elePHPant
Icontem

securityAuthParam: Encrypt and verify URL parameters

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Info   View files View files (4)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings  
2009-12-16 (5 years ago) RSS 2.0 feedStarStarStar 59%Total: 671 All time: 4,479 This week: 1,187Up
Version License PHP version Categories  
security-auth-param 1.0BSD License5.2PHP 5, Cryptography, Security
Description Author  

This class can be used to encrypt and verify URL parameters.

It can take a string or array of values to be passed as query parameters in an URL and encrypt it using a given private key.

The class can also decrypt and verify the integrity of an encrypt string or array value passed in the current page URL.

In Portuguese:

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.

Picture of Marcelo Costa
Name: Marcelo Costa <contact>
Classes: 9 packages by
Country: Brazil Brazil
Age: ???
All time rank: 35029 in Brazil Brazil
Week rank: 856 Down65 in Brazil Brazil Down
Innovation award
Innovation award
Nominee: 1x

Details provided by the author  
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

  Files folder image Files  
File Role Description
Accessible without login Plain text file paramAuthArray.php Example exemple
Accessible without login Plain text file paramAuthQueryString.php Example exemple
Accessible without login Plain text file readme.txt Doc. document
Plain text file securityAuthParam.php Class class

 Version Control Unique User Downloads Download Rankings  
 0%Total:671All time:4,479
 This week:0This week:1,187Up
 User Ratings  
 
 All time
Utility:83%StarStarStarStarStar
Consistency:83%StarStarStarStarStar
Documentation:25%StarStar
Examples:75%StarStarStarStar
Tests:-
Videos:-
Overall:59%StarStarStar
Rank:932