2017 © Pedro Peláez
 

library obscure

Obscure IDs in requests and URLs of you Laravel 5 app

image

sschlein/obscure

Obscure IDs in requests and URLs of you Laravel 5 app

  • Thursday, February 11, 2016
  • by sschlein
  • Repository
  • 2 Watchers
  • 5 Stars
  • 19 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 3 Versions
  • 6 % Grown

The README.md

Obscure

Hide IDs from URLs and forms

Software License Build Status Scrutinizer Code Quality codecov.io StyleCI, (*1)

Obscure your Laravel 5 applications IDs from URLs and requests. It's based on the popuplar Hashids package, (*2)

// http://exampleapplication.com/user/ALnLzW

Route::get('/user/{id}', function ($id) {
    return "ID: " . $id; //returns a number
})->middleware('obscure');

Contents

, (*3)

Installation

In order to add obscure to your project, just add, (*4)

"sschlein/obscure": "dev-develop"

to your composer.json. Then run composer install or composer update., (*5)

Or run composer require sschlein/obscure if you prefer that., (*6)

Add the service provider to your app

In your config\app.php file, add the obscure service provider to providers array., (*7)

    // ...
    Sschlein\Obscure\ObscureServiceProvider::class,
    // ...

Set a salt hash in your .env file to generate unique hashs., (*8)

OBSCURE_SALT=your-unique-phrase

Add the middleware to your Kernel

In your app\Http\Kernel.php file, add the obscure middleware to the $routeMiddleware array., (*9)


protected $routeMiddleware = [ // ... 'obscure' => \Sschlein\Obscure\Middleware\Obscure::class, // ... ];

, (*10)

Usage

By default, Obscure looks for routes or request parameters with a parameter named id. To modify this parameter, add it as a middleware parameter like this:, (*11)

Route::get('/obscure/{user_id}', function ($user_id) {
    return "ID: " . $id; // returns a number
})->middleware('obscure:user_id');

If this parameter is present, it gets decoded to the id and can be used without applications changes., (*12)

// http://exampleapplication.com/obscure/ALnLzW
// hashed with salt "salt"

Route::get('/obscure/{id}', function ($id) {
    return "ID: " . $id; // returns a number
})->middleware('obscure');

To generate routes or request parameters, you can use the blade extension. In a blade template, just use, (*13)

<a href="/users/@obscure(1245)">View User</a>
<input type="hidden" name="id" value="@obscure(1234)">

If you need to obscure the id within a controller, use the facade, (*14)

public function store(...)
{
    return redirect('users/' . Obscure::encode(1234));
}

That's it., (*15)

, (*16)

Optional Configuration

Obscure uses some defaults that can be configured. To change the default configuration, publish the config., (*17)

php artisan vendor:publish

You can now configure the salt hash, the length of the hash and the used alphabet of the hash in the config/obscure.php., (*18)

, (*19)

License

Obscure is free software distributed under the terms of the MIT license., (*20)

The Versions