我有一个使用drupal webforms的测试网站。
我的注册表格包含以下密码字段。他们使用内置的“密码字段”类型
当我查看MySQL数据库时,我可以在webform_submitted_data表中以明文形式查看密码。
我错过了允许这种情况发生的事情?
由于
答案 0 :(得分:0)
免责声明:我不是Drupal的专家!
话虽如此,我猜测密码字段是直接从页面上的文本字段获取数据并将其存储在表格中。这意味着没有进行验证或散列,也没有任何安全措施可以阻止您进行任何类型的攻击。</ p>
您最好的办法是找到一种方法来散列数据,以及某种独特且随机生成的值作为您的盐。如果您可以这样做,输入的密码将接近不可恢复。您还需要将盐存储在用户的条目旁边,以便以后在用户重新输入密码时重新创建密码。
您可以做的另一件事是搜索Drupal的论坛或文档,看看是否有相同问题的人,以及他们是否有解决方案?它也可能出现在官方文档中,输入清理和验证以及散列都是由开发人员完成的,以满足他们的规范 - 希望有关于如何实现这一目标的说明。
同样,我不知道drupal是如何工作的 - 所以&#34;修复它&#34;部分由你决定。但我希望至少强调这个问题可以帮助你找到解决方案。
答案 1 :(得分:0)
首先,感谢您考虑将密码以明文形式存储在数据库中并不是一件好事。事实并非如此。 :)
我相信这是Drupal 8 Webform? https://www.drupal.org/project/webform
答案: 我不相信密码字段会加密提交给他们的任何数据。这只是为用户提供了一个HTML密码字段。
其他信息: 我会仔细考虑在这样的字段数据中保存密码的必要性。在实施过程中很难不会遗漏某些内容,并为您或您的用户造成安全问题。我绝对建议让Drupal开发人员专门从事安全性审核,并根据您的需求提供一些替代解决方案。
似乎有一个值得审查的选项(我的意思是这需要对生产使用进行测试和安全审查)。此模块https://www.drupal.org/project/webform_encrypt为Drupal Webform模块的字段数据提供加密。它说它利用加密模块(https://www.drupal.org/project/encrypt),如果设置正确,它是加密Drupal数据的一个很好的模块。
答案 2 :(得分:0)
我会说什么shrop说 - 为什么你首先以这种形式存储密码?我会重新审视表单的要求,回到最终目标,并重新考虑整个架构。