PHP Classes

File: readme.txt

Recommend this page to a friend!
  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: 15 years ago
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