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 adresemspatie/laravel-ciphersweet.