在Python中开发时保护MySQL密码?
我正在编写一个使用 MySQL数据库的 Python脚本,该数据库是本地托管的.该程序将作为源代码提供.因此,MySQL密码将以裸露的眼光可见.有没有一个很好的方法来保护这个? 这个想法是为了防止一些顽皮的人看源代码,直接访问MySQL,做某事…好,淘气. 解决方法有些事情首先这里的问题不应该是如何隐藏密码,而是如何保护数据库.请记住,密码通常是非常弱的保护,不应被视为保护数据库的唯一机制.你在使用SSL吗?没有?那么即使你设法将密码隐藏在应用程序代码中,仍然很容易在网络上嗅探! 您有多个选项.全部具有不同程度的安全性: “应用角色” 为应用程序创建一个数据库用户.应用此角色的授权.一个非常常见的设置是允许CRUD操作. 优点 >非常容易设置 缺点 >看到密码的人都可以访问数据库中的所有数据.即使该数据通常隐藏在应用程序中. 原子认证和认证 每个应用程序/最终用户创建一个数据库用户.这允许您即使在每个列的基础上定义原子访问权限.例如:用户X只能从表foo中选择far和baz.没有别的但用户Y可以选择所有的内容,但没有更新,而用户Z具有完整的CRUD(选择,插入,更新,删除)访问权限. 优点 >相当容易设置. 缺点 >可以很乏味 存储过程与原子验证&auth 在您的应用程序中不写SQL查询.通过SPROC运行一切.然后为每个用户创建db-accounts,并将权限分配给SPROC. 优点 >最有效的保护机制. 缺点 >不知道这是否适用于MySQL(我在该领域的知识是片面的). 最后的想法 您不应该允许应用程序的数据库管理任务.大多数情况下,应用程序需要的唯一操作是SELECT,INSERT,DELETE和UPDATE.如果您遵循这个准则,用户几乎没有发现密码的风险.除上述要点外. 无论如何,请保留备份.我假设你想为你的数据库预测意外的删除或更新.但事故发生…记住这一点;) (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Python使用metaclass实现Singleton模式的方法
- python – 如何覆盖BaseHTTPRequestHandler log_message()方
- Django 1.10中有哪些django.core.context_processors.reque
- 用Python解码Mac OS文本
- 在Python中存储三角形/六边形网格的最佳方法
- Python / Scipy – 将optimize.curve_fit的sigma实现到opti
- python – 如何用numpy绘制文件
- python – web2py插入方法
- 用于__str__和方法解析顺序的Python Mixin
- python – 带有postgres的游标,存储数据的位置以及对DB的调