2017-12-08 9 views
0

필자는 app.py flask 앱의 안전성에 대해 궁금해했다. 먼저 데이터베이스, 나는 MySQL을 사용하고있어 현재 나는 다음과 같은 방법으로 연결하고있다 :플라스크에 mysql 서버 자격증 명을 안전하게 저장하는 방법은 무엇입니까?

# Config MySQL 
app.config['MYSQL_HOST'] = 'localhost' 
app.config['MYSQL_USER'] = 'root' 
app.config['MYSQL_PASSWORD'] = 'password' 
app.config['MYSQL_DB'] = 'databasename' 
app.config['MYSQL_CURSORCLASS'] = 'DictCursor' 

을 그리고 나에게 이것은 단지 봤는데 등 일반 텍스트 비밀번호에 넣어, 매우 이상한 느낌 온라인으로 검색하고 있지만 별도의 파이썬 파일에 넣고 가져 오는 것 외에 다른 방법을 찾지 못했습니다. 어떤 일을 전혀하지 않는 것 같아요.이 보안 현명하게 할 수있는 더 좋은 방법이 있습니까?

암호 인코딩에 사용하는 비밀 키. 어느 것이 단순히 코드에 일반 텍스트로 저장되어 있습니까? 더 안전하게 만들거나 덜 명확하게 만들 수있는 방법이 있습니까?

미리 감사드립니다.

+0

MySQL 자격 증명은 항상 프로그래밍 언어로 일반 텍스트로 바뀝니다. 문제는 poeple이 분해기 (Java, Flash 및 Flex) 또는 디스어셈블러 (C, C++, C#, VB ...)를 사용하여 소프트웨어를 리버스 엔지니어링 할 수 있고 MySQL 자격 증명을 찾을 수있는 경우입니다. 프로그램에서는 API 프로토콜 (REST, XML RPC, SOAP) 또는 서버 클라이언트 (SOCKETS) 인터페이스를 노출시켜 MySQL 서버로 데이터를 전송해야합니다. 그런 다음 MySQL 자격 증명을 항상 서버 측에 보관합니다. –

답변

0

코드를 실행하는 컴퓨터는 암호를 알아야하므로 컴퓨터 소유자 (사용자가 아닌 경우)를 보호 할 수 없습니다. 그러나 소스 코드에 암호가 있다면 쉽게 버전 관리에 넣을 수 있습니다. 공용 github을 사용하면 쉽게 키를 게시 할 수 있습니다.

암호를 설정 파일에 넣거나 (예 : .gitignore을 통해 버전 관리에 넣지 않도록주의) 환경 변수를 사용할 수 있습니다.