Collegato a: Crittografia di un messaggio di formato fisso?
Devo comunicare dal Sito A, un insieme di informazioni che verranno presentate agli utenti del Sito A, che quando scelgono di inviare, devono recarsi sul mio Sito B. Al Sito B, devo convalidare che la richiesta in effetti proveniva dal sito A.
Il sito A ha una chiave segreta che può essere utilizzata per la crittografia.
Le informazioni che devono essere passate:
// The SiteName must somehow be identified to Site B otherwise
// I dont know which secret key to use for decryption
$SiteName = "SiteA";
$Command = "commandA";
$UserId = "42";
$UserName = "John";
$UserTimeZone ="America/New_York";
$UserCountryCode ="US"
$BookId ="966";
$message = encryptionfunction($SiteName.'-'.time());
In questo momento, sto inviando tutto quanto sopra, visibile all'utente.
Dovrei crittografare $ Command e altri campi e inviare solo
$SiteName = "SiteA";
$message = encryptionfunction($SiteName.'-'.$Command.'-'.$UserId.'-'.$UserName
.'-'.$UserTimeZone.'-'.$UserCountryCode.'-'.$BookId.'-'.time());
1.Edit
frm: link
fornirò le chiavi API ai siti dei miei partner e useranno il codice che gli ho dato per generare "token".
questi token saranno automaticamente presenti sui moduli su cui gli utenti dei siti partner faranno clic e raggiungeranno il mio sito. quando raggiungono il mio sito, dovrò verificare che provengano effettivamente da un sito partner.
come convalidarlo? l'apikey sarà segreto, ma ciò che viene presentato nel modulo NON lo sarà, quindi non deve essere possibile per gli utenti intelligenti effettuare il reverse engineering del mio algoritmo.