【问题标题】:Is FROM_BASE64() on MySQL secure?MySQL 上的 FROM_BASE64() 是否安全?
【发布时间】:2014-07-09 19:23:21
【问题描述】:

我在这里遇到了一些麻烦。我正在为我的社交辩论平台构建一个搜索引擎,出于安全目的,所有用户内容(敏感数据除外)都以 base64 编码。在构建搜索引擎时,我偶然发现了一个问题;显然,如果用户内容全部存储在 base64 中,我就无法搜索用户内容。然后我在这里偶然发现了一个答案,该答案指出在 SQL 查询上使用 FROM_BASE64 会解码然后处理它。作为一个对安全性极度偏执的人,我首先关心的是:在处理数据时,该功能是否可以防止任何 SQL 注入攻击?还是在发布内容时需要 real_escape 然后执行 base64 以安全地使用该功能?

【问题讨论】:

  • 如果您对安全性极度偏执,那么您确实会意识到 BASE64 根本不是一种加密机制...并且永远不应该用于存储敏感内容...
  • 如果您删除(异常),您在说同样的事情......“出于安全目的,所有用户内容都以 base64 编码”。这意味着所有用户内容(出于安全目的)都是 base64...
  • 你为什么要base64编码安全的东西?你只是让自己更难。 Base64 最好留给传输层,而不是存储。
  • 用户输入的安全性如何?
  • Sergio:我们是来帮助你的,我们不欠你任何东西,你是在这里寻求他人帮助的人。因此,如果有人误读了您的问题或没有得到您所说的内容,请至少有礼貌地以礼貌的方式回答我。您不想回答您的问题吗?因为这就是您无法回答问题的方式。

标签: php mysql sql security base64


【解决方案1】:

简短回答:只要您不将 HTTP 数据放入 FROM_BASE64 查询中,就完全不需要使用 base64 - 但使用它并没有害处。如果你想把 ESCAPED http-data 放进去,你还想检查 SQL 模式,...许多语言都有特定的 DBM 转义函数/库,建议你使用它们

切勿将 http-data 直接输入到任何类型的 DB 函数中而不转义它。

【讨论】:

猜你喜欢
  • 2012-09-27
  • 1970-01-01
  • 2014-03-08
  • 2012-10-29
  • 1970-01-01
  • 2021-01-25
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多