简短的回答

你不能

如果密码存储在发送给最终用户的工件中,您必须认为它已被泄露!即使工件是已编译的二进制文件,也总是有(或多或少复杂的)获取密码的方法。

保护资源的唯一方法是只向最终用户公开有限的API。要么构建编程API(REST、WS+SOAP、RMI、JavaEE+Servlets,…),要么只通过SPROCs在DB中公开某些功能(见下文)。

一些事情先

这里的问题不应该是如何隐藏密码,而是如何保护数据库。请记住,密码通常只是一种非常弱的保护,不应被视为保护数据库的唯一机制。你在使用SSL吗?不?好吧,那么即使如果成功地在应用程序代码中隐藏了密码,在网络上嗅到它仍然很容易!

你有多种选择。都有不同程度的安全:

“应用程序角色”

为应用程序创建一个数据库用户。为此角色应用授权。一个非常常见的设置是只允许CRUD操作。

专业人士非常容易设置

防止查询(例如SQL注入?)

Cons每个看到密码的人都可以访问数据库中的所有数据。即使该数据通常隐藏在应用程序中。

如果密码泄露,用户可以在没有条件的情况下运行UPDATE和DELETE查询(即:立即删除/更新整个表)。

原子身份验证

为每个应用程序/最终用户创建一个数据库用户。这允许您定义原子访问权限,即使是在每列的基础上。例如:用户X只能从表foo中选择列far和baz。没有别的了。但用户Y可以SELECT所有内容,但没有更新,而用户Z具有完全CRUD(select、insert、update、delete)访问权限。

有些数据库允许您重用操作系统级凭据。这使得对用户的身份验证是透明的(只需要登录到工作站,然后将该标识转发到数据库)。这在完整的MS堆栈(OS=Windows,Auth=ActiveDirectory,DB=MSSQL)中最容易实现,但据我所知,在其他DBs中也可能实现。

专业人士设置起来相当容易。

非常原子的授权方案

Cons在数据库中设置所有访问权限可能会很繁琐。

拥有UPDATE和DELETE权限的用户仍然可能是意外的(或有意的?)删除/更新而不使用标准。可能会丢失表中的所有数据。

具有原子身份验证的存储过程

在应用程序中编写noSQL查询。通过SPROCs运行所有项。然后为每个用户创建数据库帐户,并仅为存储过程分配特权。

专业人士最有效的保护机制。

存储过程可以强制用户向每个查询传递条件(包括DELETE和UPDATE)

Cons不确定这是否适用于MySQL(我在这方面的知识很薄弱)。

复杂的开发周期:您想要做的一切,必须首先在存储过程中定义。

最后的想法

不应允许应用程序执行数据库管理任务。大多数情况下,应用程序只需要SELECT、INSERT、DELETE和UPDATE这些操作。如果您遵循此准则,用户发现密码几乎不会有风险。除了上面提到的几点。

无论如何,保留备份。我假设您希望针对意外删除或更新对数据库进行投影。但是意外发生了。。。记住这一点;)

python连数据库如何不写明文密码_在Python中开发时保护MySQL密码?相关推荐

  1. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  2. python写一个类方法_重写python脚本,在脚本的每个类中注入一个方法 - python

    假设我有一个python模块foo.py,其中包含: class Foo(object): def __init__(self): pass 接下来,我想解析此脚本,并在每个类中注入一个方法,然后将其 ...

  3. 树莓派python编程入门与实战解压密码_树莓派Python编程入门与实战

    目录 第一部分 树莓派编程环境 第1章 配置树莓派 3 1.1 获取树莓派 3 1.1.1 了解树莓派的历史 3 1.1.2 为什么要学习用Python 在树莓派上进行编程 4 1.2 获取树莓派 5 ...

  4. python手写代码面试_常见Python面试题—手写代码系列

    原标题:常见Python面试题-手写代码系列 1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reverse tempList = [1,2,3,4] tempList.reverse( ...

  5. python手写代码面试_常见Python面试题 — 手写代码系列

    原标题:常见Python面试题 - 手写代码系列 作者: Peace & Love 来自:https://blog.csdn.net/u013205877/article/details/77 ...

  6. python画图代码的输入数据可以取出来_用Python写了个小程序:最小二乘法、读取文件、作图以及数据输出到文件...

    #最小二乘法 import numpy as np #numpy是一个基于python的基础的科学计算包,在本代码中我们会用它来实现方差和标准偏差的计算 from decimal import * # ...

  7. python写新年快乐程序_新年快乐! python实现绚烂的烟花绽放效果

    新年快乐! python实现绚烂的烟花绽放效果 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  新年快乐! python实现绚烂的烟花绽放效果.txt ] (友情 ...

  8. python是什么学了有什么用处_学python有什么用途 就业方向有哪些

    学习完python以后有很多用途,比如可以做Web开发.网络爬虫.数据分析.服务器运维.python自动化测试等工作,就业方向很多,就业前景也非常好. 学完python的就业方向 1.Web开发,我们 ...

  9. 台式电脑如何设置开机密码_网络安全小黑板|如何设置开机密码

    2014 年 5 月 18 日,浙江湖州的吴女士发现支付宝上的 3 万多元不翼而飞,立即报警.后经湖州警方侦查,是因为两名 85 后嫌疑男子使用技术手段,远程操控了吴女士的计算机,在其中植入了木马病毒 ...

最新文章

  1. 用Python解“支票问题”题
  2. 小型的ESP8266-01s WiFi串口模块是否可以下载MicroPython?
  3. NURBS曲面结构及生成原理、修改方法
  4. YOLOv2和YOLOv3效果对比
  5. 专用计算机例子,计算机基础综合题案例.doc
  6. 爬虫python代码广告_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)...
  7. WinDbg学习笔记(一)--认识WinDbg
  8. ipfs-hdfs分布式文件系统
  9. 软件工程(2018)第三次团队作业
  10. 更改vmware esx机器的ip
  11. 虚拟大师怎么修改手机_手机虚拟大师,打造一个属于你的专属手机平台
  12. c# 网口相机可以通过_双网口硬盘录像机怎么设置?录像机连接GB28181公安专网步骤指导...
  13. 软件测试日志怎么写,为什么要进行日志测试和如何进行日志测试?
  14. 把ipad变成电脑的音箱
  15. my android机器人作文,机器人作文400字
  16. 大专计算机档案,大专档案自我鉴定(精选5篇)
  17. 回顾历史5次经济衰退时期:这一次可能会有何不同?
  18. 网络 :无线热点与网线一同连接笔记本(完结)
  19. 考研压力越来越大,你秃了吗?
  20. matlab自带的VAD检测程序

热门文章

  1. 第68届柏林国际电影节组委会日前公布了电影名单
  2. 四则运算web版需求规格说明书
  3. 跟小甲鱼学Web开发笔记07
  4. bt客户端linux,Ubuntu 16.04安装BT客户端Transmission 2.84
  5. 年味究竟是淡了还是浓了?
  6. 给群晖6.2.4(NAS)实现免费的内网穿透_以zerotier-One实现
  7. UnityRPG第三人称控制器
  8. 基于SSM的网上水果生鲜超市商城管理系统
  9. java猫大叫一声_猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒 | 学步园
  10. java情人节_程序员也是有情怀的!情人节看程序员如何告白