attualmente creo un token per un'app per dispositivi mobili nella maniera seguente. Decifro il token per elaborare la richiesta e verificare che l'utente abbia effettuato l'accesso. Sono connesso a TLS RSA 2048 bit. Mi chiedevo se $ GLOBALS è sicuro e se aggiungere un hmac_sha256 renderebbe il mio token più difficile da falsificare o non cambierebbe molto.
$GLOBALS['encryption_key'] = <<<'EOT'
MIGsAgEAAiEAwtvvzQzXiesVUPxXV7+jvUbmXfavBqxdakC1Tn+PpmcCAwEAAQIg
WtklzWkOWKv0zURJCI09riGVIPIzGx1XPmFVaAbOeBECEQDynUX9BuIv3k6IA1wm
IcSpAhEAzZwpEHQtbj3xpiWy34/sjwIRAJ2ltmmxBF6obI0S6djZTmkCEQDLpv5h
hsEs7Xv5lmOK3lJvAhEAxJzS4NEgH2fF7mfaLfIWWg==
EOT;
function new_auth_token($user) {
$token_data = [
'param1' => 'type',
'param2' => $user['p2'],
'param3' => $user['p3'],
'param4' => $user['p4'],
'param5' => $user['p5'],
'expedite' => (time() + (3600*24*180))
];
$json = json_encode($token_data);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length(AES_256_CBC));
$ssl = openssl_encrypt($json, AES_256_CBC, $GLOBALS['encryption_key'], 0, $iv);
$token = base64_encode($ssl).'.'.base64_encode($iv);
return $token;
}