[flutter] 플러터 build_runner로 생성한 파일의 보안 설정 방법

플러터 애플리케이션을 개발하는 동안 build_runner를 사용하여 코드를 생성하는 경우가 많습니다. build_runner를 사용하면 코드를 생성하고 유지보수하는 데 도움이 됩니다. 그러나 build_runner로 생성된 파일은 애플리케이션의 보안에 영향을 미칠 수 있으므로 이 파일들을 안전하게 관리하는 방법에 대해 알아보겠습니다.

1. .gitignore 파일에 추가

build_runner로 생성된 파일은 불필요하게 레포지토리에 포함되어서는 안됩니다. 따라서 .gitignore 파일에 이러한 파일들을 추가하여 깃 저장소에 업로드되지 않도록 설정해야 합니다.

예시:

# build_runner 생성 파일 무시
/build/
/lib/*.g.dart

2. 접근 권한 설정

build_runner로 생성된 파일은 불필요할 뿐만 아니라, 외부에 노출되면 보안 위협이 될 수 있습니다. 따라서 해당 파일들에 대한 경로 권한을 설정하여 외부 접근을 차단해야 합니다.

예시:

import 'package:flutter/services.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChannels.platform.setMethodCallHandler((MethodCall call) async {
    if (call.method == 'setBuildRunnerFilesSecure') {
      // build_runner로 생성된 파일에 대한 접근 제한 로직 추가
    }
  });
}

위 코드는 앱이 시작될 때 플랫폼 채널을 통해 setBuildRunnerFilesSecure 메서드 호출을 대기하고, 해당 메서드가 호출되면 build_runner로 생성된 파일에 대한 접근 제한 로직을 실행합니다.

3. 암호화

build_runner로 생성된 파일을 암호화하여 외부에서의 접근을 더욱 어렵게 만들 수 있습니다. 이를 위해 파일을 암호화하고 복호화하는 메서드를 사용하여 보안성을 강화할 수 있습니다.

예시:

// build_runner로 생성된 파일을 암호화하는 예시
String encryptBuildRunnerFile(String fileContent) {
  // 암호화 로직 구현
}

// 암호화된 build_runner 파일을 복호화하는 예시
String decryptBuildRunnerFile(String encryptedContent) {
  // 복호화 로직 구현
}

위 코드는 build_runner로 생성된 파일을 암호화하는 encryptBuildRunnerFile 메서드와 암호화된 파일을 복호화하는 decryptBuildRunnerFile 메서드를 구현한 예시입니다. 이러한 절차를 통해 파일의 안전성을 더욱 강화할 수 있습니다.

build_runner로 생성된 파일을 안전하게 관리하는 방법에 대해 알아보았습니다. 이를 통해 애플리케이션의 보안성을 강화하고 민감한 정보가 노출되는 것을 방지할 수 있습니다.

참고 자료