1. Mécanisme d'autorisation du jeton. Une fois que l'utilisateur s'est connecté à l'aide du nom d'utilisateur et du mot de passe, le serveur renvoie le jeton au client.
2. Mécanisme d'expiration de l'horodatage, chaque demande de l'utilisateur apportera l'horodatage actuel.
Une fois que le serveur a reçu l'horodatage, il le compare à l'heure actuelle. Si le décalage horaire est supérieur à une certaine heure (par exemple, 5 minutes), la demande est considérée comme invalide. Le mécanisme de délai d'expiration de l'horodatage est un moyen efficace de se défendre contre les attaques DOS.
3. Mécanisme de signature.
Ajoutez d'autres paramètres de requête au jeton et à l'horodatage, puis chiffrez-les avec l'algorithme MD5 ou SHA-1.
Exemple
/** * @desc Accepter le traitement des paramètres */ fonction privée dealParam(){ //Accepter les paramètres d'en-tête - paramètres système $systemParam=getAllHeadersParam(); //Accepter les données corporelles - paramètres métier (format json) $data=file_get_contents('php://input'); //Lire les informations sur la clé privée dans le fichier de configuration $api_apiKey=C('api_apiKey'); $privatekey=$api_apiKey[$systemParam['token']]; $arr['token'] =$systemParam['token']; //L'identifiant attribué par le serveur (différents clients doivent utiliser des identifiants différents) $arr['timestamp']=$systemParam['timestamp']; //Horodatage, heure UTC, basé sur l'heure de Pékin, Huitième District Est (+8) $arr['version'] =$systemParam['version' ] ; //Numéro de version $arr['sign'] =$systemParam['sign']; //Signature $arr['source'] =$systemParam['source'] //Source (0-Android/1 - IOS/2-H5/3-PC/4-php/5-java) $arr['data'] =json_decode($data,true); //Paramètre métier format json $arr['method'] =$data['method'] //Interface d'accès, format : nom du modèle.nom de la méthode retourner $arr; }
Voici les trois mécanismes de sécurité de l'interface PHP. J'espère que cela sera utile à tout le monde. Plus de guide d'apprentissage PHP : réseau de code source