Vinculado a: ¿Encriptando un mensaje de formato fijo?
Necesito comunicarme desde el Sitio A, un conjunto de información que se presentará a los usuarios del Sitio A, que cuando elijan enviar, deben viajar a mi Sitio B. En el Sitio B, debo validar que la solicitud de hecho vino del sitio A.
El sitio A tiene una clave secreta que se puede usar para el cifrado.
La información que se debe pasar:
// 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());
En este momento, estoy enviando todo lo anterior, visible para el usuario.
¿Debo cifrar $ Command y otros campos y enviar solo
$SiteName = "SiteA";
$message = encryptionfunction($SiteName.'-'.$Command.'-'.$UserId.'-'.$UserName
.'-'.$UserTimeZone.'-'.$UserCountryCode.'-'.$BookId.'-'.time());
1.Editar
frm: enlace
proporcionaré las claves de api a los sitios de mi socio y usarán el código que les doy para generar "tokens".
estos tokens estarán presentes automáticamente en los formularios en los que los usuarios de los sitios asociados harán clic y llegarán a mi sitio. cuando lleguen a mi sitio, tendré que validar que efectivamente proceden de un sitio asociado.
¿Cómo puedo validar esto? el apikey será secreto, pero lo que se presenta en el formulario NO lo será, por lo que los usuarios inteligentes no deben poder aplicar ingeniería inversa a mi algoritmo.