?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
服務(wù)器在運行時,它不可能為惡意用戶采取正常的數(shù)據(jù)庫服務(wù)器。然而,當(dāng)服務(wù)器關(guān)閉時, 它是一個本地用戶可以欺騙正常的服務(wù)器通過啟動它們自己的服務(wù)器。欺騙的服務(wù)器可以讀取客戶端發(fā)送的密碼和查詢語句, 但是不可能返回任何數(shù)據(jù),因為PGDATA這個目錄是安全的,因為它有目錄權(quán)限的。 欺騙是可能的,因為任何用戶都可以啟動數(shù)據(jù)庫服務(wù)器;客戶端無法識別一個無效的服務(wù)器,除非它專門配置。
local連接上防欺騙服務(wù)器,最簡單方法是使用一個Unix域套接字目錄 (見unix_socket_directory),該目錄只有信任的本地用戶有寫權(quán)限。 這可以防止惡意用戶在該目錄中創(chuàng)建自己的套接字文件。如果你擔(dān)心有些應(yīng)用程序可能引用/tmp下的套接字文件, 因此防止欺騙是脆弱的, 在操作系統(tǒng)啟動時創(chuàng)建一個符號鏈接/tmp/.s.PGSQL.5432指向一個重定位的套接字文件。 你也可能需要修改/tmp下的清除腳本防止刪除這個符號鏈接。
在TCP連接上防欺騙服務(wù)器,最好的解決方案是使用SSL證書,并且確??蛻魴z查服務(wù)器的證書。 要做到這點,必須配置為僅接受hostssl連接(Section 19.1),并且有SSL的服務(wù)器server.key(密鑰) 和server.crt(證書)文件(Section 17.8)。 TCP客戶端連接必須使用sslmode=verify-ca或verify-full,并且安裝有相應(yīng)的根證書文件(Section 31.1)。