• Czas czytania ~2 min
  • 20.09.2022

Laravel Ciphersweet to pakiet od Spatie, który integruje szyfrowanie na poziomie pól przeszukiwalnych w aplikacjach Laravel. Pakiet readme wyjaśnia problem, który Ciphersweet może pomóc rozwiązać w następujący sposób:

W swoim projekcie możesz przechowywać poufne dane osobowe w swojej bazie danych. Jeśli nieupoważniona osoba uzyska dostęp do Twojej bazy danych, wszystkie wrażliwe mogą zostać odczytane, co oczywiście nie jest dobre.

Aby rozwiązać ten problem, możesz zaszyfrować dane osobowe. W ten sposób nieupoważnione osoby nie mogą go odczytać, ale Twoja aplikacja nadal może je odszyfrować, gdy trzeba wyświetlić lub pracować z danymi.

Ten pakiet jest opakowaniem dla Ciphersweet, aby zintegrować jego funkcje łatwo w modele Laravela. Oto przykład modelu z readme's instrukcje konfiguracji ilustrujące, jak wygląda model przy użyciu Ciphersweet:

use Spatie\LaravelCipherSweet\Contracts\CipherSweetEncrypted;
use Spatie\LaravelCipherSweet\Concerns\UsesCipherSweet;
use ParagonIE\CipherSweet\EncryptedRow;
use Illuminate\Database\Eloquent\Model;
 
class User extends Model implements CipherSweetEncrypted
{
    use UsesCipherSweet;
 
    public static function configureCipherSweet(EncryptedRow $encryptedRow): void
    {
        $encryptedRow
            ->addField('email')
            ->addBlindIndex('email', new BlindIndex('email_index'));
    }
}

Pozwala to zaszyfrować wiadomość e-mail użytkownika, aby zabezpieczyć ją przed nieautoryzowanymi osobami czytającymi dane, ale masz możliwość odszyfrowania danych w celu ich wyświetlenia lub pracy z nimi.

Po skonfigurowaniu tego pakietu i skonfigurowaniu modelu możesz wyszukiwać zaszyfrowane dane w bazie danych za pomocą ślepych indeksów:

$user = User::whereBlind('email', 'email_index', '[email protected]');

Ten pakiet pomaga również w generowaniu kluczy szyfrujących i szyfrowaniu atrybutów modelu w celu przyspieszenia integracji z Ciphersweet.

Chcę zaznaczyć, że nie należy używać tego pakietu na ślepo bez zrozumienia tajniki przypadku użycia, który próbujesz rozwiązać. Więcej informacji o CipherSweet znajdziesz na tej stronie, na której znajduje się wiele powiązanych zasobów.

CipherSweet posiada również dokumentację specyficzną dla PHP+, która pomoże Ci przyspieszyć pracę z podstawowym pakietem PHP.

Polecam również przeczytanie Rias' post,

Szyfrowanie Laravel Eloquent modeli za pomocą CipherSweet.

Aby rozpocząć korzystanie z tego pakietu, sprawdź go na GitHub pod adresem

spatie/laravel-ciphersweet.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297