사용자가 Twitter, Google 등의 OAuth 자격 증명을 사용하여 로그인 할 수있는 웹 사이트에서 작업하고 있습니다. 이렇게하려면이 다양한 제공 업체에 등록하고 내가 가지고있는 비밀 보안 키를 가져와야합니다 다양한 신체 부위에 대한 서약으로 보호합니다. 내 키가 ank되면 부품이 k니다.
API 키는 런타임에 인증 요청을 수행하는 데 사용되므로 소스와 함께 이동해야합니다. 필자의 경우 키는 응용 프로그램 내 구성 파일의 코드 또는 코드 자체에 있어야합니다. 단일 컴퓨터에서 빌드하고 게시 할 때 문제가되지 않습니다. 그러나 소스 컨트롤을 믹스에 넣으면 상황이 더 복잡해집니다.
나는 싼 놈이기 때문에 클라우드 또는 GitHub에서 TFS와 같은 무료 소스 제어 서비스를 사용하는 것을 훨씬 선호합니다. 이것은 나에게 약간의 수수께끼를 남긴다.
API 키가 코드에 있고 공용 저장소에서 코드를 사용할 수있을 때 어떻게 내 몸을 그대로 유지할 수 있습니까?
나는 이것을 처리하는 여러 가지 방법을 생각할 수 있지만 그중 어느 것도 만족스럽지 않습니다.
- 코드에서 모든 개인 정보를 제거하고 배포 후 다시 편집 할 수 있습니다. 이것은 구현하기가 매우 어려울 수 있으며 (여러 가지 방법을 자세히 설명하지는 않음) 옵션이 아닙니다.
- 암호화 할 수있었습니다. 그러나 암호를 해독해야하므로 소스를 가진 사람은 누구나 그렇게하는 방법을 알 수 있습니다. 무의미한.
- 개인 소스 제어 비용을 지불 할 수 있습니다. LOL J / K는 돈을 쓰나요? 부디.
- 언어 기능을 사용하여 민감한 정보를 나머지 소스와 분리하여 소스 제어에서 벗어날 수 있습니다. 이것이 내가 지금하고있는 일이지만 실수로 비밀 파일을 체크인하여 쉽게 망칠 수 있습니다.
나는 개발, 디버깅 및 배포를 통해 원활하게 작동하고 완벽하게 작동하는 개인과 세계 (스냅 채팅 제외)를 공유하지 않는 보장 된 방법을 찾고 있습니다. 이것은 완전히 비현실적입니다. 그래서 현실적으로 무엇을 할 수 있습니까?
기술적 세부 사항 : VS2012, C # 4.5, 소스 제어는 TF 서비스 또는 GitHub입니다. 현재 부분 제어를 사용하여 민감한 키를 소스 제어에 추가되지 않는 별도의 .cs 파일로 분리합니다. gitgitore를 사용하여 부분 클래스 파일이 체크인되지 않도록 할 수 있기 때문에 GitHub의 이점이 있다고 생각하지만 이전에는 문제를 해결했습니다. "오, 일반적인 문제, 이것이 당신이하는 방법입니다"를 기대하고 있지만 "가능한 한 많이 빨지 않습니다", : /