【发布时间】:2015-01-26 12:40:36
【问题描述】:
我继承了这个脚本,其中一些敏感信息存储在数据库中...我想在保存并显示在日志中之前将其替换为 ********。
我正在使用 PHP...敏感信息是一组随机生成的字符,例如:yYng6Ytzh(有时还可能包括 !'s 和 @'s)。
它总是跟在特定的子字符串 Password: 之后,例如:Password: yYng6Ytzh,并被存储在单个字符串中的其他文本包围。
例如:
$EmailContent 'Dear Some Name,
here is your password
...or click the link to login...
someurl.com?action=Log%20In&username=someuser@test.com&…
Your log in details are:
Username: your full email address (where this email was received)
Password: yYng6Ytzh
Some more bla bla
Kind Regards,
Admin
我一直在尝试 preg_match()、preg_replace() 的各种组合,包括带有偏移量的 str_replace (),但我没有得到任何结果。
谁能指点我正确的方向?
【问题讨论】:
-
密码中可以有空格吗?如果是这样,分隔符是什么?你可以不做替换,只做
$strToLog .= "Password: ********"; -
你能发布一个你想要实现的例子吗?
-
感谢您的帮助-这是一个示例...基本上,一封电子邮件被发送给用户,邮件正文在一个 $var 中,然后它被存储在数据库中...我'想去掉密码(它不包括空格)但仍然显示完整的电子邮件...有两个地方我想在电子邮件中使用它,但希望调整一个来做另一个...但如果有更简洁的解决方案,我将包括这两个示例。
-
$EmailContent 'Dear Some Name, 这是您的密码...或单击链接登录... someurl.com?action=Log%20In&username=someuser@test.com&… 您的登录详细信息是: 用户名:您的完整电子邮件地址(此电子邮件在哪里已收到)密码:yYng6Ytzh 还有一些 bla bla 亲切的问候,管理员 所以,我希望能够保留邮件的结构......但在它被存储之前,我需要将密码替换为 ***** *** 因为我不能在邮件输出功能上执行此操作...我正在寻找拦截数据库保存功能上的 $EmailContent。
标签: php regex string preg-replace redaction