제 경우에는 Dropbox API를 사용하고 있습니다. 현재 저는 키와 비밀을 JSON 파일에 저장하고 있습니다. gitignore를 사용하여 Github 저장소에서이를 지킬 수 있도록하는 것이지만, 보안 관점에서 코드에서 사용하는 것보다 낫지는 않습니다. 전에 파이썬을 보호하거나 난처하게 만드는 것에 대한 많은 질문이있었습니다 (보통 상업적인 이유로). 그 대답은 항상 "파이썬이 그걸 의미하지 않습니다."입니다.파이썬 앱에 API 키를 어떻게 저장해야합니까?
따라서 코드를 보호 할 방법이 없지만 API 세부 정보를 공개하지 않고 앱을 배포 할 수있는 솔루션을 찾고 있습니다.
텍스트 파일에 암호화 된 값으로 채 웁니다. 비공개 저장된 암호화 키를 만들고 필요할 때 해독하십시오. 그래도 더 좋은 방법이있을 수 있지만,이 방법은 과거 나를 잘 해 줬습니다. –
누군가가 자신의 컴퓨터에서 프로그램을 실행하고 프로그램이 키를 사용하면 사실상 공개됩니다. WireShark를 가동시켜 프로그램을 연결하고 Dropbox (또는 몇 가지 다른 기준 - 최악의 경우 수백 개의 패킷을 파고들)에 대한 연결 캡처를 필터링하는 것은 천재가 아닙니다. API 키가있는 문자열 리터럴을 변경할 수 없거나 프로그램에 아무 쓸모가 없으므로 프로그램을 난독 화하는 것만으로는 아무 것도 살 수 없습니다. – delnan
@delnan HTTP 트래픽에서 API 키를 볼 수 있습니까? Dropbox는 SSL을 통해 모든 것을 처리합니다. GET 또는 POST 변수를 사용하는지 또는 HTTP 요청의 헤더에 넣는 지 알 수 없습니다. HTTPS 요청으로 암호화되는 것입니까, 아니면 요청 본문입니까? – espekia