2011-01-21 7 views
4

모듈을 만들 때 원격 데이터베이스 호스트, 사용자 이름 및 암호를 안전하게 저장해야하는 중요한 정보가 있습니다.Drupal 모듈에 중요한 정보를 저장할 위치는 어디입니까?

사용 가능한 유일한 저장 공간은 Drupal 데이터베이스에있는 것 같습니다.이 데이터베이스는 Drupal이 손상된 경우이 데이터베이스를 사용하므로 걱정입니다. 파일 sites/all/default에있는 settings.php 파일이 두 번째 옵션 이었지만 작성하는 데 문제가 있습니다. 다양한 chmod FTP 및 SSH에서 777 및 666 명령은 파일을 쓰기 위해 열지 않습니다. 또한 내가 설정 한 변수가 다른 곳에서도 사용 가능한지 확실하지 않습니다.

이 정보를 안전하게 저장할 수있는 다른 방법이 있습니까?

답변

3

당신은 settings.php를 사용하여 올바른 길을 가고 있습니다. use the $conf variable in settings.php을 사용하여 variable_get을 사용하여 모듈에서 액세스 할 수있는 변수를 설정할 수 있습니다.

+0

관련 질문 :'settings.php'에 쓸 수없는 이유는 무엇입니까? 그것의 권한은 FTP와 SSH에서 777에 있지만 FTP에서 파일을 편집 할 수 없습니다. 그것에 대한 어떤 제안? – TheLQ

+0

파일을 편집 할 때 어떤 오류가 발생합니까? –

+0

'Command : \t STOR settings.php'- 응답 : \t 553 이름 바꾸기/이동 실패 : 허가가 거부되었습니다. ' 그리고 내가 FTP에서하지 말고 SSH에서 편집 할 수 있음을 분명히하자 – TheLQ

3

흠 ... 일반적으로하지 말아야 할 것 같습니다. 액세스 할 수있는 원격 데이터베이스에있는 API를 작성하십시오.

그러나 직접 데이터베이스 액세스를 주장하는 경우. 파일에 호스트, 사용자 이름 및 암호를 하드 코딩하고 문서 루트 외부에 파일을 넣은 다음 파일을 포함시킵니다. 예를 들어 문서 루트 (즉, Drupal의 index.php 파일이있는 곳)가/www/htdocs 인 경우/www/secure와 같은 정보를 포함하는 파일을 넣고 필요한 곳에 포함 시키십시오. 그런 다음 PHP가 어떤 이유로 작동을 멈 추면 파일이 외부 세계에 읽을 수있는 위치에 있지는 않지만 PHP는 필요에 따라 사이트에이 파일을 포함 할 수 있습니다.

확실히 누군가는 당신이 파일을 포함하고 있었다는 것을 볼지도 모르지만, 파일을 보지 못한다면 (드루팔 (Drupal)이 아니라) 서버를 해킹하지 않는 한 그 파일 자체를 볼 수 없을 것입니다.

+0

drupal은 settings.php 파일의 내용을 안전하게 유지하고 이것을 문서 루트 외부에 두는 것은 자체 보안 문제입니다. – mirzu

+2

@mirzu Drupal은 PHP가 실패하지 않는 한 보안을 유지합니다. 로그인 또는 암호와 같은 중요한 정보가 들어있는 파일은 문서 루트 내에 없어야합니다. 특히 원격 서버에는 적합하지 않습니다. 최소한 MySQL 인스턴스가 로컬 인 경우 localhost에서 들어오는 커미션 만 허용하도록 설정할 수 있습니다. (나는이 제안이 투표를 보증하지 않는다고 생각합니다 ...) – Endophage

+0

PHP 없이도 파일 권한이 올바르게 설정되면 settings.php 파일은 http를 통해 액세스 할 수 없어야합니다. 사용자가 로컬에 액세스 할 수있는 경우 웹 루트에서 파일을 내보낼 수있는 이점이 없습니다. 원격 데이터베이스가이 서버의 연결 만 수락하도록하는 것은 좋은 보안 단계이므로 연결 자격 증명의 저장 방법에 관계없이 수행해야합니다. – mirzu

0

구성 파일을 사용하면 이러한 유형의 정보에 이상적입니다. 그러나 chmod 777 또는 666 일을 정말 나쁜 아이디어입니다. 문제는이 두 설정 모두 GLOBALLY 읽기/쓰기 파일을 허용한다는 것입니다. 따라서 공유 호스트에있는 경우 시스템의 다른 사용자가 파일에 액세스 할 수 있습니다. 설치시 phm의 chmod() 함수를 사용하여 chmod 500을 파일에 적용 해보십시오. (대부분의 경우 500이 작동해야하며 가장 중요한 부분은 마지막 숫자가 0 임).

+0

이것은 테스트 용이었습니다. 그러나 엄청나게 열린 권한으로도 FTP를 통해 파일에 쓸 수는 없습니다. 그것에 대한 제안이 있습니까? – TheLQ

+0

@TheLQ FTP를 통해 chmod 777 파일에 쓸 수 없다면 파일 권한에 문제가 없습니다. 더 많은 FTP 사용은 ** 매우 심각한 ** 취약점입니다. SFTP 또는 FTPS를 사용해야합니다. – rook

+0

그럼 뭐가 문제 야? Drupal이 어떻게 든 잠겨있는이 파일 외에 모든 파일에 쓸 수 있습니다. 그리고 FTPES를 사용하고 있습니다. 그러나 나는 보통 파일을 쓰기 위해 열어 둔다면 매번 그 시간을 – TheLQ

관련 문제