GoldMap项目笔记(三)

新的问题很快就出现了,嗯,不过我觉得在这个项目运行的初期,还不算是什么大的问题,不过个人觉得还是有必要加以关注,同时也做一点学习和了解。
这个问题的引发是由于使用了asnycpg这个库操作postgresql,当访问postgresql创建连接池的时候,调用的参数包括了用户密码,当时我写入了访问数据库的密码,而且是明文写入的。因为目前项目是保存在github上面的,当代码上传之后,等于访问数据库的帐号以及密码就完全公开了,然后这就引发了我的困扰。因为这完全就是安全的隐患嘛!
昨天一天都在试图解决这个问题。
最先从脑海里产生的思路是,这是asyncpg的问题,为什么会明文写入密码,时候可以先进行加密,然后将加密后的密码串发送给pg,由pg端进行解密,然后验证用户?但是很快这个思路就被我否定了,因为这样操作,似乎并不能解决问题。因为即使我预先加密了原始的密码,但是只要调用asyncpg操作创建连接池的时候,还是要在参数中输入密码,密码同样也等于暴露了。
然后我想到的思路就是做ssl访问,客户端和服务器端核对认证证书。这样就无需输入密码即可访问操作postgresql了,而且在我的印象中,postgresql也是支持ssl和ssh访问的。于是,接下来就一直在按照这个思路在查询相关的资料。
首先查找的是postgresql的官方文档,不得不说,postgresql的官方文档相当详细,几十章的内容,介绍了这个产品的方方面面。介绍客户端认证的内容在第十九章(我使用的postgresql版本号为9.5,而最新版则是9.6),整整一个章节介绍了认证的各个方法。其中就包括了关于ssl认证的说明。而第十七章第九节则详细介绍了如果设置ssl认证。postgresql的ssl认证是需要制作证书,客户端的证书尤其麻烦。不过在该小节末尾介绍了如何自行制作ssl证书。于是我就按照该章节的说明进行了配置。
很不幸的是,尝试没有成功。然后就在网络上搜集其他人的文章,看看有没有配置成功的操作案例,虽然找到了不少,而且每个人设置的方法也都不尽相同。只好跟着每个人的设置,尝试解决自己的问题。就这样折腾了一个晚上,一直到了半夜。问题依然没有解决。
我的系统是ubuntu16.10,看起来似乎是权限的问题,只要我在pg_hba.conf文件中设置了认证方式为hostssl,postgresql的服务就无法启动,/var/run/postgresql/.s.PGSQL这里就没有权限获取,从而导致服务不能起来。关于这一点,可能需要在后面学习了postgresql的相关知识后才能找到问题的原因了吧。
不过在查阅官方文档的过程中,我倒是发现了避开我的困扰的方法。根据文档中的说明,在postgresql的本机上客户端访问时候,是可以不用输入密码,直接就可以进行访问并操作的,于是我尝试着修改了一下代码。果然,虽然去掉了password的参数,但是程序依旧成功地进行了数据库的操作。这个晚上总算有了一点点小小的收获!
对于现在的情况来说,关于安全这一块,则是将风险转移到了操作系统上面,只要系统不被入侵,访问数据库的操作还是比较安全的。就算以后整个系统正式上线,只要不是需要多台机器访问数据库,这一个困扰我的问题都不需要面对。不过我想,到了那个时候,或许这个系统已经相当庞大了,而我也许找到了更好的办法。毕竟对于psotgresql来说,可以进行安全认证的方法并不只有ssl这一种。
前几天在蜂鸟上面看到了一组外国的摄影师为自己女儿拍摄的写真,爸爸将女儿打造成了《星球大战:原理觉醒》的女主角,非常的可爱。不知道未来将会诞生的我的宝贝,会不会有一天也会让我给她拍一组这样的片子?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • About:PostgreSQL About 《PostgreSQL 源码分析系列》 PostgreSQL 源码分...
    ty4z2008阅读 12,632评论 1 40
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,281评论 19 139
  • 前面两篇文章中关于 HTTP 相关知识基本上介绍的差不多了,这篇文章是对 HTTP 协议的补充,主要介绍以下三点内...
    lijiankun24阅读 5,133评论 2 3
  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 8,825评论 0 20
  • 年少时,因为没有被伤害过,所以不懂得仁慈;因为没有畏惧,所以不懂得退让; 所以我们任性肆意,亳不在乎伤...
    bigboss乖乖女阅读 1,882评论 0 0

友情链接更多精彩内容