PHP code example of mnb / mnb-secure-core

1. Go to this page and download the library: Download mnb/mnb-secure-core 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/ */

    

mnb / mnb-secure-core example snippets




nb\SecurityCore\Env\EnvLoader;
use Mnb\SecurityCore\Core\SecurityKernel;

EnvLoader::load(__DIR__ . '/../.env');
$config = 



nb\SecurityCore\Env\EnvLoader;
use Mnb\SecurityCore\Core\SecurityKernel;

EnvLoader::load(__DIR__ . '/../.env');
$config = 

use Mnb\SecurityCore\Http\MiddlewarePipeline;
use Mnb\SecurityCore\Http\Request;
use Mnb\SecurityCore\Http\Response;

$request = Request::fromGlobals($config['app']['trusted_proxies'] ?? []);

$pipeline = new MiddlewarePipeline([
    $kernel->requestTrustMiddleware(),
    $kernel->serverIdentityProtectionMiddleware(),
    $kernel->trustedHostMiddleware(),
    $kernel->httpsMiddleware(),
    $kernel->corsMiddleware(),
    $kernel->securityHeadersMiddleware(),
    $kernel->inputValidationMiddleware(),
    $kernel->rateLimitMiddleware('api', 'api.profile'),
    $kernel->authenticationMiddleware('api_bearer'),
    $kernel->authorizationMiddleware('students.read'),
    $kernel->autoAuditMiddleware(),
]);

$response = $pipeline->handle($request, function (Request $request): Response {
    return Response::json(['status' => true]);
});

$response->send();

$response = $kernel->secureRequestReceiver('api_authenticated')->handle(
    $request,
    fn (Request $request) => Response::json([
        'status' => true,
        'request_id' => $request->attribute('request_id'),
    ])
);

use Mnb\SecurityCore\Auth\OpaqueTokenService;

$tokens = new OpaqueTokenService($kernel->tokenStore());
$issued = $tokens->issue('user-1001', ['api:read'], ttlSeconds: 3600);

$plainToken = $request->bearerToken();
$record = $plainToken
    ? $tokens->validate($plainToken, $request->ip(), (string)$request->header('user-agent', ''))
    : null;

if (!$record || !in_array('api:read', $record['scopes'] ?? [], true)) {
    return Response::json(['status' => false, 'message' => 'Unauthorized'], 401);
}

$result = $kernel->rateLimiter()->attempt('api:' . $request->ip(), 120, 60);

if (!$result->allowed) {
    return Response::json(['status' => false, 'message' => 'Too many requests'], 429, [
        'Retry-After' => (string)$result->retryAfter,
    ]);
}

use Mnb\SecurityCore\Auth\Csrf;

$csrf = new Csrf('_csrf_token');
$token = $csrf->token();

if ($_SERVER['REQUEST_METHOD'] === 'POST' && !$csrf->verify($_POST['_csrf'] ?? '')) {
    return Response::text('Invalid CSRF token', 419);
}

use Mnb\SecurityCore\Authz\TenantContext;
use Mnb\SecurityCore\Authz\PermissionGuard;

$context = new TenantContext(
    tenantId: 'school-1',
    userId: 'user-1001',
    roles: ['admin'],
    permissions: ['student.view', 'student.update']
);

(new PermissionGuard())->

$protected = $kernel->dataProtectionRegistry()->protectForStorage('students', [
    'name' => 'Ravi',
    'email' => '[email protected]',
    'parent_phone' => '9876543210',
]);

$safeResponse = $kernel->dataProtectionRegistry()->protectForResponse('students', $protected, $request);
$logSafe = $kernel->dataProtectionRegistry()->protectForLog('students', $protected);

use Mnb\SecurityCore\Database\TableSecurityPolicy;

$policy = new TableSecurityPolicy(
    table: 'students',
    resourceType: 'student',
    selectableColumns: ['id', 'school_id', 'name', 'class_id', 'status'],
    insertableColumns: ['name', 'class_id', 'status'],
    updatableColumns: ['name', 'class_id', 'status'],
    searchableColumns: ['name'],
    orderableColumns: ['id', 'name', 'created_at']
);

$rows = $kernel->secureDatabase()->search($context, $policy, 'Ravi', [
    'status' => ['eq' => 'active'],
    'class_id' => ['in' => [1, 2, 3]],
    'created_at' => ['between' => ['2026-01-01', '2026-06-30']],
], 'created_at', 'DESC', 50, 0);

$record = $kernel->secureFileManager(profile: 'documents')->storeFromPath(
    $_FILES['document']['tmp_name'],
    $_FILES['document']['name'],
    'student-documents',
    ['user_id' => 501],
    ['school_id' => 10, 'data_class' => 'sensitive']
);

$response = $kernel->protectedDownloadManager()->download(
    $request,
    $record,
    'student_document.download'
);

$result = $kernel->safeProcessRunner()->run('clamav_scan', [$uploadedFilePath]);
$response = $kernel->outboundHttpClient()->postJson($webhookUrl, ['event' => 'security.alert']);

$handler = $kernel->safeErrorHandler();
$handler->register();

$safeData = $kernel->safeViewData([
    'name' => $request->input('name'),
]);

echo $kernel->safeTemplateRenderer()->render('Hello {{ name }}', $safeData);

$job = $kernel->jobDispatcher()->dispatch(
    name: 'file_scan',
    payload: ['file_id' => $fileId],
    queue: 'files',
    idempotencyKey: 'file_scan:' . $fileId
);

return $kernel->asyncResponseFactory()->accepted($job);

$kernel->tokenRevocationService()->revoke('token-jti', 'logout');
$kernel->forcedLogoutService()->logoutUser('user-1001', 'password_changed');
text
my-php-app/
├── public/
│   └── index.php
├── app/
├── config/
│   └── security.php
├── storage/
│   ├── private/
│   ├── quarantine/
│   ├── cache/
│   ├── logs/
│   ├── audit/
│   ├── backups/
│   ├── queue/
│   └── tokens/
└── libraries/
    └── mnb-secure-core/
bash
php vendor/mnb/mnb-secure-core/bin/mnb-secure key:generate
php vendor/mnb/mnb-secure-core/bin/mnb-secure config:validate
php vendor/mnb/mnb-secure-core/bin/mnb-secure doctor
bash
php bin/mnb-secure key:generate
php bin/mnb-secure config:validate
php bin/mnb-secure doctor
php bin/mnb-secure matrix:export
bash
php bin/mnb-secure vulnerabilities:matrix
php bin/mnb-secure vulnerabilities:report
php bin/mnb-secure vulnerabilities:check sql_injection
php bin/mnb-secure vulnerabilities:check ssrf
php bin/mnb-secure vulnerabilities:check refresh_token_replay
php bin/mnb-secure vulnerabilities:owasp
php bin/mnb-secure vulnerabilities:export
bash
php bin/mnb-secure db:health
php bin/mnb-secure db:check-connection
php bin/mnb-secure db:policy
php bin/mnb-secure db:query-limits
php bin/mnb-secure db:schema-plan add_column students admission_number 'VARCHAR(100)'
php bin/mnb-secure db:privileges
bash
php bin/mnb-secure runtime:list-commands
php bin/mnb-secure runtime:check-command clamav_scan /tmp/example.txt
php bin/mnb-secure outbound:policy
php bin/mnb-secure outbound:check-url https://example.com
bash
php bin/mnb-secure pentest:run-checklist production_release
php bin/mnb-secure pentest:verify PT-INJ-001
php bin/mnb-secure pentest:evidence
php bin/mnb-secure pentest:coverage production_release
php bin/mnb-secure pentest:remediation-plan
php bin/mnb-secure pentest:retest
php bin/mnb-secure security:release-gate production_release
bash
php bin/mnb-secure errors:policy
php bin/mnb-secure errors:catalog
php bin/mnb-secure errors:simulate internal
php bin/mnb-secure errors:simulate validation
php bin/mnb-secure errors:simulate security
php bin/mnb-secure errors:fingerprint
php bin/mnb-secure errors:check-production
bash
php bin/mnb-secure memory:policy
php bin/mnb-secure memory:profile database_export
php bin/mnb-secure memory:simulate-allocation 10485760 request
php bin/mnb-secure memory:stream-plan 52428800 read
php bin/mnb-secure memory:payload-check
php bin/mnb-secure memory:worker-check
php bin/mnb-secure resources:check
php bin/mnb-secure resources:cleanup-plan
bash
php bin/mnb-secure throughput:policy
php bin/mnb-secure throughput:profile api_request
php bin/mnb-secure throughput:budget api_request 1200 1
php bin/mnb-secure throughput:concurrency api_request
php bin/mnb-secure throughput:throttle api_request 1800 55
php bin/mnb-secure throughput:queue 1200 10 250
php bin/mnb-secure throughput:slo
php bin/mnb-secure throughput:capacity-risk
php bin/mnb-secure throughput:simulate api_request 100 750
php bin/mnb-secure performance:release-gate
bash
php bin/mnb-secure origin:policy
php bin/mnb-secure origin:check
php bin/mnb-secure origin:exposure-report
php bin/mnb-secure origin:fingerprint
php bin/mnb-secure origin:firewall-plan
php bin/mnb-secure origin:proxy-profile cloudflare
php bin/mnb-secure origin:proxy-allowlist
php bin/mnb-secure origin:leak-scan
php bin/mnb-secure origin:production-gate
bash
php bin/mnb-secure queue:policy
php bin/mnb-secure queue:dispatch test_job
php bin/mnb-secure queue:work default --once
php bin/mnb-secure queue:work files --max-jobs=10
php bin/mnb-secure queue:status job_abc123
php bin/mnb-secure queue:failed
php bin/mnb-secure queue:retry job_abc123
php bin/mnb-secure queue:dead-letter
php bin/mnb-secure queue:metrics
php bin/mnb-secure queue:pressure
php bin/mnb-secure queue:handlers
php bin/mnb-secure queue:release-gate
bash
php bin/mnb-secure token:policy
php bin/mnb-secure token:revoke <jti>
php bin/mnb-secure token:introspect <jti>
php bin/mnb-secure token:cleanup
php bin/mnb-secure token:family <family_id>
php bin/mnb-secure token:revoke-family <family_id>

php bin/mnb-secure session:policy
php bin/mnb-secure session:list
php bin/mnb-secure session:revoke <session_id>
php bin/mnb-secure session:revoke-user <user_id>
php bin/mnb-secure session:cleanup
php bin/mnb-secure session:check <session_id>
php bin/mnb-secure session:devices <user_id>
bash
php bin/mnb-secure xss:policy
php bin/mnb-secure xss:scan
php bin/mnb-secure xss:escape-sample
php bin/mnb-secure production:readiness
php bin/mnb-secure production:env-checklist
php bin/mnb-secure production:release-plan
php bin/mnb-secure release:manifest
php bin/mnb-secure release:build-plan
php bin/mnb-secure final:gate
bash
php demos/run-all-demos.php
bash
php bin/mnb-secure release:manifest
php bin/mnb-secure release:build-plan
php bin/mnb-secure production:release-plan