• Время чтения ~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' post, Шифрование моделей 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