2012-06-21 6 views
-1

프로덕션 환경에서 장고 앱 인스턴스를 보호하기 위해 수행되는 일반적인 단계는 무엇입니까? sqlite를 사용하여 데이터베이스를 암호화해도 좋을 것입니다.프로덕션에서 django 보안 설정

데이터베이스가 암호화되기 때문에 앱 코드도 암호화되거나 컴파일되어야합니다. 모든 * py 파일을 삭제하고 * pyc 파일을 남겨 두는 것이 안전합니까?

또한 프로덕션 서버에서 django 쉘 (./manage.py 쉘)을 비활성화 할 수 있습니까? 일단 쉘이 접근 가능하면 모든 데이터가 접근 가능합니다.

내가 사용하는 스택은 다음과 같습니다. Nginx + Gunicorn + Django + SQLite는 모두 전용 방화벽이있는 랙 공간 전용 서버에서 호스팅됩니다.

기본적으로 루트 액세스 권한이있는 사용자는 누구나 데이터베이스 콘텐츠에 액세스 할 수 없습니다.

+2

나는 사람들이 왜 이것을 묻는 지 결코 이해할 수 없을 것이다. 누가 서버에 로그인 할 수있는 능력이 있습니까? "장고 껍질을 무력화시키는 것"은 무엇을 의미합니까? –

+4

누군가가 루트 액세스 권한을 가지고 있으면 게임이 끝났고 잃어 버렸습니다. –

+0

@FredLarson : 호스팅 회사가 루트 액세스 권한을 갖고 있지 않습니까? Ergo, 호스팅 회사에서 호스팅하는 모든 사이트에는 프로덕션 서버에 대한 루트 액세스 권한이 있습니다. – TheOne

답변

4

장고를 안전하게하는 것은 중요한 질문이지만, 나는 혼란 스럽다고 생각합니다.

먼저 코드를 검사하기가 쉽지 않을지라도 더 안전하게 만들 수는 없습니다. 둘째, pyc 파일에서 주석을 제외한 모든 것을 복구 할 수 있습니다.

마지막으로 django 쉘은 명령 줄에서 응용 프로그램과 상호 작용할 때 편리합니다. 권한이없는 사람이 누구나 그것을 실행할 수있는 위치에 있다면, 당신이 그것을 무력화했는지는 중요하지 않습니다. 보안은 이미 완전히 손상되었을 것입니다.

현재 지식 상태로 자체 프로덕션 서버를 관리하지 않는 것이 좋습니다. 공유 호스트를 사용하고 호스팅 서비스의 보안 지침을 따르십시오. 애플리케이션의 실제 웹 보안 측면에 집중하십시오.

한 가지 더 : 프로덕션 환경에서 내장 서버를 사용하고 있지 않습니까?

업데이트 : 루트에서 자신을 보호 할 수 없으며 가능한 경우에도 다른 컴퓨터에 하드 디스크를 넣을 수 있습니다.

+0

Marcin : 제 질문에 대한 편집을 참조하십시오. – TheOne

+0

하드 디스크가 암호화되어 있습니다. = P – TheOne

+0

@Ramin 물리적 인 접근이 공격자를 돕지 못하도록 암호화되어 있다면, 컴퓨터는 아무 것도 읽을 수 없습니다. 컴퓨터가 읽을 수 있으면 물리적 액세스 권한과 루트를 가진 사람도 키를 가져올 수 있습니다. – Marcin