Laravel은 우아한 구문뿐만 아니라 고품질 웹 애플리케이션을 구축하기위한 풍부한 도구와 편리한 API를 제공하는 인기있는 PHP 프레임 워크입니다. 실제 프로젝트 개발에서 데이터 보안 및 데이터베이스 구조 표준화가 특히 중요합니다. 이 기사에서는 Laravel에서 데이터베이스 암호화 작업을 수행하는 방법을 설명하고 시스템 보안 및 유지 관리를 향상시키기 위해 데이터베이스 테이블 접두사를 구성합니다.
실제 개발에서 데이터베이스는 일반적으로 계정 번호, 암호, 이메일 주소 등과 같은 사용자의 민감한 정보를 저장하므로 암호화 처리가 특히 필요합니다. Laravel은 PHP의 OpenSSL 확장을 사용하여 데이터 암호화 및 암호 해독 작업을 구현할 수 있습니다. 키의 보안을 보장하기 위해 환경 변수와 함께 사용하는 것이 좋습니다.
$ key = env ( 'app_key'); $ iv = env ( 'app_iv'); $ password = OpenSSL_ENCRYPT ( 'Your_db_password', 'AES-256-CBC', $ key, 0, $ IV);
위의 코드를 통해 데이터베이스 암호를 암호화 할 수 있습니다. 암호화에 필요한 키 (APP_Key) 및 초기화 벡터 (APP_IV)는 Laravel 프로젝트의 .env 파일에 구성되어야합니다.
$ key = env ( 'app_key'); $ iv = env ( 'app_iv'); $ password = OpenSSL_DECRYPT ($ Encrypted_Password, 'AES-256-CBC', $ key, 0, $ IV);
암호 해독 프로세스는 암호화 방법과 대칭이며 동일한 키와 벡터를 사용하여 원래 암호를 성공적으로 복원해야합니다.
PHP 장인 키 : 생성 -쇼 PHP 장인 키 : 생성 -쇼 | grep "^app_iv">> .env
첫 번째 명령은 응용 프로그램 키를 생성하는 데 사용되며, 두 번째 명령은 가능한 오류의 수동 추가를 피하기 위해 초기화 벡터를 환경 구성 파일에 직접 추가 할 수 있습니다.
Laravel은 데이터베이스를 더 잘 관리하고 테이블 이름 충돌을 피하기 위해 데이터베이스 테이블 접두사를 설정하는 기능을 제공합니다. 다중 모듈 또는 다중 언어 시스템에 특히 적합합니다.
DB_PREFIX = Your_Prefix
접두사를 설정 한 후 Laravel은 쉽게 통합 된 관리를 위해 후속 데이터베이스 작업에 지정된 접두사를 자동으로 추가합니다.
schema :: create ( 'your_table_name', function (blueprint $ table) { $ table-> 증분 ( 'id'); $ table-> String ( 'name'); $ table-> string ( 'email')-> 고유 (); $ table-> boolean ( 'active')-> default (false); $ table-> timestamps (); $ table-> unsignedinteger ( 'user_id'); $ table-> forex ( 'user_id')-> 참조 ( 'id')-> on ( 'user'); });
마이그레이션 중에 수동으로 접두사를 추가하지 않으면 Laravel은 자동으로 인식하고 적용됩니다.
$ user = db :: table ( 'your_table_name')-> get ();
db :: 테이블 메소드를 사용하여 쿼리 할 때 프레임 워크는 추가 작업없이 your_prefix_your_table_name 과 같이 정의 된 접두사를 테이블 이름에 자동으로 추가합니다.
위의 구성을 통해 Laravel은 민감한 데이터베이스 정보를 암호화 할뿐만 아니라 데이터베이스 테이블 접두사 설정을 쉽게 구현할 수 있습니다. 환경 변수와 마이그레이션 도구의 사용을 결합하면 프로젝트의 보안이 향상 될뿐만 아니라 데이터베이스 관리의 유연성도 향상됩니다.