Quem costuma desenvolver usando Laravel e os seus métodos resourceful muitas das vezes se depara com a problemática de expor os IDs dos seus recursos na URL o que pode levar à sérios riscos de segurança. Dependendo dos tipos de usuário, eles podem tentar fazer a adivinhação da próxima sequência o que não é nada difícil caso use o increment do ID na DB.
Uma maneira seria tentar usar um código à parte e daí identificar o recurso através deste código não sequencial ou então usar o uuid como chave primária.
Outra solução seria usar alguma forma de codificar o próprio ID do recurso ao mesmo tempo garantir a possibilidade de reversão deste valor codificado de forma a que possa extrair o ID e comparar na DB e, ainda ao mesmo tempo, garantir que não sejam gerados caracteres que possam criar algum tipo de distorção da URL (por ex. “/”,” %”, etc..).
É esta última alternativa que o pacote vinkla/laravel-hashids tenta proporcionar de forma simple e eficiente.
O pacote vinkla/laravel-hashids é um invólucro para Laravel de uma outra biblioteca hashids/hashids.
Instalação
Requeira através do composer na raíz do seu projecto
composer require vinkla/hashids
Adicione o service provider no ficheiro config/app.php
no array de providers
.
Vinkla\Hashids\HashidsServiceProvider::class
Se quiseres usar Facade, adicione a seguinte linha no array de aliases
no ficheiro config/app.php
'Hashids' => Vinkla\Hashids\Facades\Hashids::class
Mais informações sobre o pacote no link abaixo. Boa programação!!