Maison  >  Article  >  cadre php  >  Comment cacher son identifiant dans Laravel

Comment cacher son identifiant dans Laravel

PHPz
PHPzoriginal
2023-04-21 10:05:28705parcourir

Avec le développement d'applications Web, de plus en plus de personnes commencent à utiliser des frameworks pour créer leurs propres applications. L'un des frameworks les plus populaires est Laravel. Laravel fournit de nombreuses fonctions et outils qui facilitent le développement, y compris une fonction permettant de masquer les identifiants, ce qui est très utile pour certaines applications ayant des exigences de sécurité élevées.

Dans de nombreuses applications, la clé primaire d'un enregistrement de données est généralement un identifiant numérique, ce qui facilite la gestion et la récupération des données. Cependant, nous devons parfois protéger ces enregistrements de données pour éviter qu’ils ne soient facilement exposés. Par exemple, si nos enregistrements de données contiennent des informations sensibles, nous souhaitons autoriser l'accès uniquement aux utilisateurs authentifiés.

Dans Laravel, nous pouvons utiliser une fonctionnalité appelée liaison de modèle de route pour transmettre implicitement la valeur de l'identifiant. Cela signifie que nous pouvons masquer l'identifiant dans l'URL et continuer à l'utiliser pour interroger des enregistrements de données. Voyons comment cela fonctionne.

Nous devons d'abord définir une clé de routage dans notre modèle, ce sera le champ que nous utiliserons implicitement. Dans notre exemple, nous utiliserons le champ slug pour identifier nos enregistrements de données.

class Post extends Model
{
    public function getRouteKeyName()
    {
        return 'slug';
    }
}

Ensuite, nous devons mettre à jour notre définition de routage pour utiliser notre modèle et nos clés de routage. Par exemple, nous pouvons utiliser la route suivante pour afficher une publication :

Route::get('/posts/{post}', function (Post $post) {
    return view('post', compact('post'));
});

Cela donnera à notre application une URL qui affichera la publication avec l'identifiant 1 :

http://example.com/posts/1

Cependant, afin de masquer l'identifiant, nous pouvons mettre à jour notre Route définition, utilisez un slug au lieu de id. Par exemple :

Route::get('/posts/{post:slug}', function (Post $post) {
    return view('post', compact('post'));
});

Maintenant, nous pouvons utiliser le champ slug au lieu de l'identifiant dans notre URL. Par exemple, nous pouvons utiliser l'URL suivante pour afficher la même publication :

http://example.com/posts/my-first-post

Lorsque nous ouvrirons cette URL, Laravel utilisera notre modèle pour trouver la publication correspondant au slug "my-first-post" et la passera en paramètre transmis à notre contrôleur. Nous pouvons accéder aux propriétés et méthodes de la publication de la même manière qu'avant, par exemple :

<h1>{{ $post->title }}</h1>
<p>{{ $post->content }}</p>

En utilisant cette façon, nous pouvons masquer l'identifiant dans notre application et utiliser à la place des champs. Ceci est très utile dans certaines applications, telles que :

  • Empêcher les utilisateurs d'accéder directement aux données sensibles à partir des URL
  • Améliorer la sécurité de l'application et garantir que seuls les accès autorisés peuvent obtenir les données
  • Améliorer la convivialité et une meilleure utilisation , Des URL plus lisibles

En conclusion, le framework Laravel fournit de nombreux outils et fonctionnalités utiles, l'utilisation de la liaison de modèle de route peut nous aider à masquer les identifiants et à améliorer la sécurité et la convivialité de nos applications. Si vous êtes un développeur Laravel, il est recommandé d'essayer cette technique pour améliorer la qualité globale de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn