PHP code example of yorcreative / laravel-scrubber
1. Go to this page and download the library: Download yorcreative/laravel-scrubber library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yorcreative / laravel-scrubber example snippets
return [
/**
* Specify the string to use to redact the data
*/
'redaction' => '**redacted**',
'secret_manager' => [
'key' => env('APP_KEY'),
'cipher' => 'AES-256-CBC',
'enabled' => false,
'providers' => [
'gitlab' => [
/**
* Enable the GitLab secret manager
*/
'enabled' => false,
'project_id' => env('GITLAB_PROJECT_ID'),
'token' => env('GITLAB_TOKEN'),
'host' => 'https://gitlab.com',
/**
* `*` will grab all the secrets, if you want specific variables
* define the keys in an array
*/
'keys' => ['*'],
],
],
],
/**
* Specify the regexes to load
* You can use a wildcard (*) to load all regexes in all `custom_regex_namespaces` and the default core regexes.
* Otherwise, specify the regexes you want to load either by qualified class name or by unqualified (base) class name,
* which will then search the `custom_regex_namespaces` and the default core regexes for a match.
*/
'regex_loader' => ['*'],
/**
* Specify regex patterns to exclude from loading when using the regex loader
* This allows fine-grained control over which regex patterns are loaded, especially useful when using wildcard (*) in regex_loader
*
* You can exclude patterns using any of these formats:
* - Fully qualified class name (e.g., 'YorCreative\Scrubber\RegexCollection\GoogleApi')
* - Base class name (e.g., 'GoogleApi', 'EmailAddress')
* - Pattern constant from RegexCollection (e.g., RegexCollection::$GOOGLE_API)
* - Custom namespace class (e.g., 'App\Scrubber\RegexCollection\HerokuApiKey')
*
* Example:
* [
* 'GoogleApi',
* 'YorCreative\Scrubber\RegexCollection\EmailAddress',
* RegexCollection::$HEROKU_API_KEY,
* 'App\Scrubber\RegexCollection\HerokuApiKey'
* ]
*/
'exclude_regex' => [],
/**
* Specify namespaces from which regexes will be loaded when using the wildcard (*)
* for the regex_loader or where you use unqualified class names.
*/
'custom_regex_namespaces' => [
'App\\Scrubber\\RegexCollection',
],
/**
* Specify config keys for which the values will be scrubbed
* You should use the dot notation to specify the keys
* You can use wildcards (*) to match multiple keys
*
* - 'database.connections.*.password'
* - 'app.secrets.*'
* - 'app.some.nested.key'
*/
'config_loader' => [
'*token',
'*key',
'*secret',
'*password',
],
/**
* Specify the channels to tap into
* You can use wildcards (*) to match multiple channels
*/
'tap_channels' => false,
];
namespace App\Scrubber\RegexCollection;
use YorCreative\Scrubber\Interfaces\RegexCollectionInterface;
class TestRegex implements RegexCollectionInterface
{
public function getPattern(): string
{
/**
* @note return a regex pattern to detect a specific piece of sensitive data.
*/
return '(?<=basic) [a-zA-Z0-9=:\\+\/-]{5,100}';
}
public function getTestableString(): string
{
/**
* @note return a string that can be used to verify the regex pattern provided.
*/
return 'basic f9Iu+YwMiJEsQu/vBHlbUNZRkN/ihdB1sNTU';
}
public function getReplacementValue(): string
{
/**
* @note return a string that replaces the regex pattern provided.
*/
return config('scrubber.redaction');
}
public function isSecret(): bool
{
return false;
}
}
'exclude_regex' => [
// Exclude by base class name
'GoogleApi',
// Exclude by fully qualified class name
'YorCreative\Scrubber\RegexCollection\EmailAddress',
// Exclude using RegexCollection constant
RegexCollection::$HEROKU_API_KEY,
// Exclude from custom namespace
'App\Scrubber\RegexCollection\HerokuApiKey'
],