• Час читання ~0 хв
  • 20.09.2022

Laravel Ciphersweet — це пакет від Spatie для інтеграції шифрування на рівні полів для пошуку в програмах Laravel. У пакеті readme пояснюється проблема, яку Ciphersweet може допомогти вирішити таким чином:

У вашому проекті ви можете зберігати конфіденційні особисті дані у своїй базі даних. Якщо неавторизована особа отримає доступ до вашої БД, усі конфіденційні дані можна буде прочитати, що явно не добре.

Щоб вирішити цю проблему, ви можете зашифрувати особисті дані. Таким чином, неавторизовані особи не зможуть прочитати його, але ваша програма все одно може розшифрувати його, коли вам потрібно відобразити або працювати з даними.

Цей пакет є оболонкою для Ciphersweet для інтеграції його функцій в моделі Laravel легко. Ось приклад моделі з readme's інструкції з налаштування, які ілюструють, як виглядає модель із використанням 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'));
    }
}

Це дозволяє шифрувати електронну пошту користувача, щоб захистити її від неавторизованого читання даних, але надати у вас є можливість розшифрувати дані, щоб відобразити їх або працювати з ними.

Якщо ви налаштували цей пакет і налаштували модель, ви можете шукати зашифровані дані в базі даних за допомогою сліпих індексів:

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

Цей пакет також допомагає генерувати ключі шифрування та атрибути моделі шифрування для пришвидшення інтеграції з Ciphersweet.

Я хочу зазначити, що ви не повинні використовувати цей пакет наосліп, не розуміючи, тонкощі випадку використання, який ви намагаєтеся вирішити. Ви можете дізнатися більше про CipherSweet на цій сторінці, яка містить багато пов’язаних ресурсів.

CipherSweet також має документацію для PHP\, яка допоможе вам швидше ознайомитися з основним пакетом PHP.

Я також рекомендую прочитати Rias' публікація, Шифрування моделей Laravel Eloquent за допомогою CipherSweet.

Щоб почати роботу з цим пакетом, перегляньте його на GitHub за адресою spatie/laravel-ciphersweet.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

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...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297