【发布时间】:2018-07-31 19:49:57
【问题描述】:
我有一个字符串,
userStmt:
SELECT * FROM RUN_ON_HIVE(SERVER('10.23.40.23'),USERNAME('user'),PASSWORD('pass'),DBNAME('default'),QUERY('ANALYZE TABLE default.test01 COMPUTE STATISTICS'));
我正在尝试将密码子句转换为“****”。
String sanitizeduserstmt=userStmt;
boost::regex pw_re("PASSWORD\\('[^']*'\\)");
boost::regex_replace(sanitizeduserstmt, pw_re, "PASSWORD('****')");
但这不起作用。有人可以告诉我我哪里出错了吗? TIA
【问题讨论】:
-
不是:boost::regex_replace(sanitizeduserstmt, pw_re, "PASSWORD('****')");这条线干吗?
-
这听起来像是一个非常糟糕的主意。只是不要记录 SQL 语句(使用准备好的语句)。此外,如果您在服务器软件的任何地方都有明文密码,99.99999% 的情况下这是一个安全漏洞。