🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 17.7\. 防止服务器欺骗 当服务器正在运行时,恶意用户代替正常的数据库服务器是不可能的。然而,当服务器关闭时, 本地用户通过启动他们自己的服务器欺骗正常的服务器是可能的。行骗服务器可以读取客户端发来的查询和密码, 但不能返回任何数据,因为`PGDATA`目录因为目录存取权限仍然是安全的。 因为任何用户都可以启动一个数据库服务器,所以欺骗是可能的;客户端不能识别无效的服务器, 除非它是专门配置的。 为`local`连接防止欺骗的最简单的方法是使用Unix域套接字目录 ([unix_socket_directories](#calibre_link-655)),这个目录只为受信任的本地用户写入了权限。 如果你担心一些应用可能仍然参考`/tmp`为套接字文件,并且因此很容易受欺骗, 那么在操作系统启动时创建一个符号链接`/tmp/.s.PGSQL.5432`指向重定位的套接字文件。 您还可能需要修改`/tmp`清理脚本以防止删除符号链接。 要在TCP连接上防止欺骗,最好的解决方法是使用SSL认证,并确保客户检查服务器的证书。 要做到这一点,服务器必须配置为只接受`hostssl`连接([Section 19.1](#calibre_link-656)), 并且有SSL秘钥和证书文件([Section 17.9](#calibre_link-657))。TCP客户必须使用`sslmode=verify-ca` 或`verify-full`连接,并且有适当的根证书文件安装([Section 31.18.1](#calibre_link-658))。