前言:
如果你要在Github或Gitee等网站开源自己的项目时,一定要注意保管好隐私。当项目开源之后,就意味着每一个人都可以看到源码。而很多情况下,你的源码里很可能包含一些很重要的信息,比如数据库的密码,或邮箱的账号或密码等。一旦你泄露了这些信息,轻则个人隐私泄露,重则服务器被黑,数据库数据泄露,甚至你的其他账号密码(你的各类账号的密码会不会相同或者相似?)全部泄露,后果不堪设想!
这篇文章是我在收到GitGuardian的警告邮件后写下的,我被警告我的SMTP邮箱账号和django密钥暴露在源码中。我是用Python的Django框架做后端的,所以我就只讲Django,其他语言或框架的也可以参考一下。
Django的setting.py文件
用过Django框架的人都知道,Django的配置都是在setting.py文件中进行设置的。其中包括但不限于数据库的账号与密码,网站或开发者个人的邮箱账号和密码,还有Django项目的密钥等。
如果过把项目进行线上开源的话,别人只需要查看setting.py文件就可以很轻松的得到这些很重要的信息。而这些信息一旦泄露,后果不堪设想。
于是我想了一个保护setting.py文件中重要信息的办法。
保护方法
我的方法是,创建一个单独的secret.py模块。因为如果把setting.py文件直接写进 .gitignore文件里忽略,这样子会比较麻烦,而且项目也不完整,多设备同步和协作开发也不方便。
我创建了一个secret.py模块,把setting.py中的重要信息,复制到secret.py模块中,这个模块写进 .gitignore中,这样子就不会上传到开源库中。如果别人想下载你的项目,他只需要自己提供自己的配置就行了。自己使用或与同事协作时只需要给secret.py文件即可。
具体步骤就是:
- 创建一个secret.py(文件名随意)
- 把setting.py中的重要信息连同变量名一起复制到这个模块中
- 把这个文件放在任何Django能找到的地方。
- 在setting.py中导入模块
- 通过调用模块的方法赋值给Django的设置变量
小贴士:
Django从项目根目录,也就是与manage.py文件同级的目录下开始查找模块。
结语
在如今这个信息时代下,个人隐私安全变得比以往任何时候都更重要。因为这已经不仅仅是裸不裸奔那么简单的事情了。你的一点隐私的泄露都有可能对你的生活造成困扰。收到各种莫名其妙的推销信息和推销电话等已经算是比较无害的后果了。鬼知道你泄露了邮箱密码后,人家会拿你邮箱干嘛?
而作为一名程序员,更不应该犯下这种低级的错误,更要好好保护好那些本就该好好保护的隐私才是。
286



被折叠的 条评论
为什么被折叠?



