2012-09-22 4 views
1

이것은 어리석은 질문 일지 모르지만 실제로 온라인 답변을 찾지 못했습니다. 수년 동안 나는 새로운 mysql 데이터베이스를 항상 암호문으로 명명했다. 일반적으로 사이트 당 하나의 데이터베이스 만 가지고 있으므로 "x7s9u3or8wj"라는 어처구니없는 명명 규칙을 사용하는 것이 어렵지 않습니다. 나는 항상 보안에 대해 걱정했지만 결코 비밀리에 데이터베이스를 명명하는 것이 필수적이라는 구체적인 데이터를 가지고 있지 않았습니다.MySQL 데이터베이스 이름 지정

는 지금은 여러 데이터베이스가 필요합니다 웹 사이트를 구축하고있다. 숨겨진 이름을 사용하면 _users _content _common과 같은 이름 지정 체계를 사용하는 경우보다 어렵게됩니다. 일반적인 단어가 보안 위험 수와

내 데이터베이스의 이름을 지정시겠습니까? 내 사용자 이름과 비밀 번호는 항상 비밀스럽고 안전합니다.

감사합니다.

+2

왜 암호 데이터베이스 이름을 사용 했습니까? 내 DB 이름은 사이트의 도메인 이름이거나 일부 프로젝트 이름입니다 ... –

+0

웹 사이트 개발을 처음 시작했을 때 시작한 일입니다. 나는 항상 추측하기 힘든 이름과 암호를 사용하여 모든 것을 안전하게 유지하도록 지시 받았다. 데이터베이스 명명에 이어진 것 같습니다. –

+0

당신의 보안이 추측하기 힘든 이름에 의존한다면, 그것은 마을의 마을 바보의 두꺼운 사촌보다 짧은 공격자와의 공간 낭비입니다. –

답변

5

데이터베이스의 이름을 적절한 이름으로 지정하십시오. 암호화 된 이름은 보안 문제를 해결하거나 SQL 주입에 취약한 코드를 덜 만들지 않습니다. 일단 당신의 SQL 호출에 삽입 할 수 있습니다, 당신의 db 이름을 찾을 수 있습니다, 아무리 당신이 그들을 만드는 방법. 때로는 DBS와 테이블을 이름을 널리 확산 CMS 시스템을 사용하여

사람들은 시도하고 잘 알려진 공격을 시도 크롤러 혼란, 그러나 이것은 당신의 일회성 시스템에 문제가되지 않을 것입니다.

+0

감사! 준비된 문을 사용하고 있으므로 SQL 주입에 대해 걱정하지 않아도됩니다. 당신이 말한 것은 완전히 사실입니다. 어떻게 든 들어 오면 이름이 무엇이든간에 이름을 얻게 될 것입니다. –

0

데이터베이스 이름을 암호로 지정하면 난독 화에 의해서만 보안이 증가 할 수 있으며 이는 보안 기능이 아니기 때문에별로 도움이되지 않습니다.

어쨌든, 레이가 말한대로, 당신의 코드는 다음 데이터베이스 이름이 '아직 알려진 될 데이터베이스에 대한 액세스 권한을 부여 할 수있는 취약점이있는 경우.

보안 대책은 MySQL 서버를 다른 사용자와 공유 할 때만 작동하며 사용자가 거기에 저장된 내용을 알지 못하게합니다. 보안 암호를 사용

은 아주 좋은 것입니다.

이 스크립트는 일반 텍스트 DB 암호를 저장합니다 조심하십시오. 따라서 응용 프로그램 공간을 다른 사용자와 공유하는 경우 DB 암호를 저장하는 파일에 액세스 할 수 없는지 확인하십시오. 또한 DB 연결을 설정 한 후 런타임에 암호 정보를 삭제하는 등의 다른 보안 조치를 시도 할 수 있습니다. PHP에서

:

$db = "someCrypticPassword"; 
$conn = mysql_connect($host, $user, $pass, ...); 
$db = "no-real-password"; 
0

나는 모든 개별 DB의 ID, 이름 및 기타 데이터를 유지하는 마스터 데이터베이스에서 하나 개의 테이블 (masterDB)을 가질 것이다. 새 데이터베이스가 설정 될 때마다 마스터 DB 테이블이 새 레코드로 갱신됩니다. 그런 다음 해당 레코드 ID가 새 데이터베이스 이름에 추가됩니다.

masterDB.acct_id=1 
masterDB.acct_id=2 
etc, this table would hold the account name as well as the ID which is auto_incremented with each new record. 

그런 다음 각각의 새 계정 데이터베이스 이름은 동적으로 이름이 붙고 표준 접두어로 추가되고 마스터 DB ID가 추가됩니다.

acctDBName_1, acctDBName_2 etc.. 

마스터 DB는 하위에 대한 데이터를 조회 할 때 참조 할 수 있습니다. 하위 그룹에는 각 하위 용도와 관련된 데이터 만 포함될 수 있습니다. 행운을 비네.

관련 문제