Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 7357|回复: 1
打印 上一主题 下一主题

在配置文件中为数据库密码加密

[复制链接]

119

主题

119

帖子

566

积分

高级会员

Rank: 4

积分
566
跳转到指定楼层
楼主
发表于 2015-10-31 22:51:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
openerp连接数据库的用户名和密码可以命令行给出, 也可以设置在配置文件中, 如下例所示:
db_user = openerp
db_password = laoliu

因为它使用了明文的密码, 因此就存在一定的安全隐患。 将配置文件中的密码进行加密, 可以在一定程度上提高系统的安全性

openerp在启动时读取配置文件,将配置文件或或命令行中设置的参数保存到了对象configmanager的options之中。因此, 我们可以在配置文件中对某项数据加密, 然后openerp的程序读取options时, 对加密的数据进行解密即可。

加密和解密的方法有许多种,我们必须采用可逆的方法,比如Base64编码:

加密过程: 我们用notepad++打开配置文件, 选择密码, 然后点击菜单 插件 | MIME Tools | BASE64 Encode, 连续点击数次。记录好点击的次数(比如,3次)。

解密过程: 修改tools目录下的config.py
将文件最末尾的def __getitem__(self, key)改为如下内容
   def __getitem__(self, key):
        res=self.options[key]
        if (key == "db_password") :
            for i in range(3): # 这里的3是连接做base64编码的次数
                res=res.decode("base64")
        return res

在config.py文件的头部, 还需要加入如下一行, 导入base64编码需要的库
import hashlib


base64编码方式很容易被踩猜到, 特别是末尾有等于号的时候, 因此它很容易被破解。本文只是举例说明修改openerp的方式, 在生产实际中应该使用更安全的加密和解密方式。

为了安全起见, 修改后的config.py文件也应该删去, 只留下编译后的config.pyc文件

回复

使用道具 举报

1

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
沙发
发表于 2015-10-31 23:39:05 | 只看该作者
又学了一招!谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-5-3 07:49 , Processed in 0.013195 second(s), 9 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表