【发布时间】:2017-11-11 14:45:40
【问题描述】:
快速提问:
当您处理仅在本地 Intranet 上提供服务并且只有两名员工(非编码人员)有权使用它的代码时,是否值得花费额外的时间和精力来加密 Dbase 数据并防止 SQL 注入?
【问题讨论】:
标签: database encryption sql-injection
快速提问:
当您处理仅在本地 Intranet 上提供服务并且只有两名员工(非编码人员)有权使用它的代码时,是否值得花费额外的时间和精力来加密 Dbase 数据并防止 SQL 注入?
【问题讨论】:
标签: database encryption sql-injection
简短的回答 - 是的。
攻击者寻找薄弱环节,而您不希望您的应用程序成为薄弱环节。例如,如果您不加密数据库中的用户凭据并且不防范 SQL 注入,则可以进入您的内部网络的攻击者可以轻松窃取您的用户凭据;如果他们重复使用了密码,这意味着攻击者现在可以使用从您的“弱”系统中窃取的凭据来访问更“强”的系统。
另外——这也是我们现在构建 Web 应用程序的方式;您使用的任何框架都会使额外的努力几乎最小化 - 可以说,如果您使用 Ruby on Rails、Zend 框架等工具,不做这些事情比做这些事情更努力。
【讨论】:
这不是关于一两个用户,而是基本的理智。您不需要加密完整的数据,只需加密敏感数据,如用户凭据。其次,对于 sql 注入,您必须使用其极少的代码行,而不是使用普通语句使用preparedstatements 进行查询。我在这里没有看到任何障碍。
如果您以正常格式存储数据,任何有权访问数据库的人都可以检索操作员凭据,任何有权访问的人都可以使用 sql 注入来破坏用户数据。
【讨论】: