2011-05-02 3 views
2

제 질문은 특정 도메인에서만 DB 연결을 허용 할 수 있는지 여부입니다. 추천 URL을 확인하여이를 수행 할 수 있다고 생각하지만 더 쉬운 방법이 있는지 궁금합니다.(config.php 파일에서) SQL 데이터베이스에 타사 연결 방지

내 서버에서 config.php 파일을 무작위로 검색하는 사람이 있었기 때문에 내가 이것을 묻는 이유는 누군가가 임의로 서버에 config.php 파일을 검색했다는 것을 알았 기 때문입니다. 그렇다면 단순히 포함하고 mysql 쿼리를 실행할 수 있습니다. 이것은 내가 원하지 않을 확실한 것입니다.

비정상적인 장소에서 구성 파일을 숨기는 것이 더 좋습니까? 사전에

감사합니다, 필

가 시스템 내부에있는 당신의 파일을 볼 수 있다면
+0

파일 이름으로 config.php 이외의 것을 사용하지 않는 이유는 무엇입니까? –

답변

2

먼저 config.php를 웹에서 공개적으로 액세스 할 수 없습니다. 웹 서버는 필요할 때 파일을 포함 할 수 있어야하지만 파일 자체는 웹 서버에 제공되어서는 안됩니다. 정확한 설정으로, 브라우저를 통해 config.php를 "찾는"것에 대해 걱정하지 않아도됩니다.

또한 데이터베이스 측면에서 웹 서버의 연결 만 허용하도록 데이터베이스를 설정해야합니다. 인터넷상의 모든 사람이 공개적으로 액세스 할 수 없도록해야합니다.

누군가가 이미 웹 서버에 있지 않아야한다면 더 큰 문제가있을 것입니다. 일부 공유 호스팅 시나리오에서는 이러한 상황이 불가피 할 수 있습니다.하지만 문제가되는 경우에는 개인 서버 또는 호스팅 제공 업체에서 적절한 권한을 설정하십시오.

+0

모든 위대한 답변 -이 하나가 나를 도왔습니다. 파일 사용 권한을 변경했습니다. – psarid

2

, 당신의 기회는 당신의 DB를 보호하기 위해 많은 일을 꽤 슬림입니다. 연결하는 다른 IP를 차단하는 것과 마찬가지로 호스트를 특별히 DB에 허용 할 수 있습니다.

2

추천 URL을 확인하여이를 수행 할 수 있다고 생각하지만, 쉬운 방법이 있는지 궁금합니다.

아니요 Referer는 HTTP 개념이므로 데이터베이스 수준에 도달하면 아무런 의미가 없습니다.

내가 이것을 요구하고 그 이유는 내가 설정 파일은 HTTP를 통해 직접 액세스 할 수 없습니다해야

무작위로 내 서버에 config.php 파일을 검색 할 사람의 생각을했기 때문에, 그리고 심지어 그렇다면 실행되기 전에 실행되어야합니다. 따라서 데이터베이스 자격 증명을 원격으로 가져올 수 없어야합니다.

동일한 공유 호스팅에서 다른 사용자가 염려되는 경우 파일 시스템 권한으로 인해 액세스가 차단되어야합니다.

0

내 사용자 테이블로 액세스를 제어합니다. 예 : MYSQL 5.5에는 사용자 이름, 암호, 호스트 이름 및 권한이있는 mysql.user 테이블이 있습니다. 각 사용자의 '호스트 이름'을 특정 도메인으로 설정하려면 즉. 'update mysql.user set hostname = 'somedomain.com' where user = 'root' and hostname = '127.0.0.1';, 루트 사용자는 해당 도메인에서 로그인 할 수 있습니다 (사용자 테이블에 루트 사용자에 대한 항목이 여러 개 있지 않은 경우에만 가능). 물론 사용자 계정에서 데이터베이스 액세스를 위해 하나의 계정 만 사용하는 경우 응용 프로그램/웹 사이트,이 작동하지 않습니다.

관련 문제