내 서버에 제대로 작동하려면 데이터베이스 사용자에 대한 액세스가 필요한 PHP 스크립트가 있습니다. 해당 PHP 스크립트를 프로그래밍한 사람이 pg_hba.conf에 다음을 추가하라고 지시했습니다.
host all all 127.0.0.1/32 trust
이로 인해 보안 관련 문제가 발생할 수 있습니까? 내가 이해한 바에 따르면, 해당 행의 기능은 로컬로 호스팅되는 스크립트가 비밀번호 없이 pgsql에 연결할 수 있도록 허용한다는 것입니다. 이 올바른지 ?
해당 행이 있으면 데이터베이스 비밀번호 없이 내 데이터베이스에 대한 원격 연결이 설정될 수 있습니까?
답변1
예, 이는 다음과 같은 구성입니다.일반적으로 매우 제한된 특수한 경우를 제외하고는 피해야 합니다.:
신뢰하다
무조건 연결을 허용합니다. 이 방법을 사용하면 PostgreSQL 데이터베이스 서버에 연결할 수 있는 사람은 누구나 비밀번호나 기타 인증 없이 원하는 PostgreSQL 사용자로 로그인할 수 있습니다.
[..]
신뢰 인증은 신뢰를 지정하는 pg_hba.conf 줄에 의해 서버 연결이 허용된 모든 시스템의 모든 사용자를 신뢰하는 경우에만 TCP/IP 연결에 적합합니다. localhost(127.0.0.1)의 연결 이외의 TCP/IP 연결에 신뢰를 사용하는 것은 거의 합리적이지 않습니다.
비밀번호를 제공하지 않고 연결을 허용하는 경우가 많을 수 있습니다. 많은 배포판에서는 기본적으로 Unix 소켓을 통해 연결 사용자로 연결을 인증하기 때문입니다. 그러면 일반적으로 시스템 사용자가 비밀번호 없이 postgres 사용자를 www-data
사용할 수 있게 됩니다 . www-data
이것이 사실인지 확인하려면 나머지 인증 구성을 확인하세요.
추천:비밀번호 또는 인증서 인증을 제공하십시오.~ 아니다옵션 을 진행하세요 trust
.
루프백 주소로만 제한하는 것은 일반적으로 외부 액세스에 대한 보안을 충분히 보장하지 않는다는 점에 유의하세요. 의도하지 않은 프록시 역할을 하는 다른 소프트웨어를 통해 루프백 바인딩 서비스에 액세스한 오랜 역사가 있습니다.