first commit

This commit is contained in:
brusnitsyn
2026-06-24 17:20:43 +09:00
commit 43499acf1c
165 changed files with 25929 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<?php
use App\Models\PersonalData;
use Illuminate\Support\Facades\DB;
it('хранит поля ПДн в зашифрованном виде (ЗНИ)', function () {
$pd = PersonalData::create([
'last_name' => 'Иванов',
'passport' => '1234 567890',
]);
// В приложении значение доступно в открытом виде.
expect($pd->fresh()->last_name)->toBe('Иванов');
// В БД хранится шифртекст, а не исходное значение.
$raw = DB::table('personal_data')->where('id', $pd->id)->value('last_name');
expect($raw)->not->toBe('Иванов')
->and(strlen((string) $raw))->toBeGreaterThan(20);
});
it('контролирует целостность записи ПДн (ОЦЛ.2)', function () {
$pd = PersonalData::create(['last_name' => 'Петров']);
expect($pd->integrityValid())->toBeTrue();
// Подмена шифртекста в обход приложения нарушает контрольную сумму.
DB::table('personal_data')->where('id', $pd->id)->update(['last_name' => 'tampered']);
expect(PersonalData::find($pd->id)->integrityValid())->toBeFalse();
});