在JavaScript控制台日志中隐藏/加密敏感的POST JSON的最佳方法

时间:2018-11-20 03:10:58

标签: javascript passwords console.log password-encryption

我有一个简单的Web服务器(使用python),带有一些API端点,以及一个带有表单的HTML页面。当用户提交表单时,表单数据通过jquery通过ajax POST调用发送到Web服务器。 API端点是HTTP。

对于其中一个API端点,它采用的参数之一是密码。我想数据传输本身(从浏览器->服务器)是安全的,因为POST是通过https完成的(所有验证都在服务器上完成)。但是,我希望能够混淆密码,以使其不会显示在控制台日志中。 (示例-实际上进行api调用的javascript函数是可以发布到任何端点的通用函数。在调试模式下,此函数将转储将要发送的json信息。因此,在调用端点的情况下使用密码,密码将以纯文本形式显示在日志中。)

我只是好奇是否有最佳实践来实现这一目标?不太复杂的东西吗?最好在浏览器中加密然后在服务器中解密?还是仅使日志显示***的方法?注意-我并不担心浏览器和服务器之间会截获数据,这只是为了防止任何内容以明文形式出现在控制台日志中。

2 个答案:

答案 0 :(得分:0)

请勿登录。

正如您所说,数据在传输中是安全的。如果问题仅在于日志,则只需修复日志即可避免记录敏感数据。

同样重要的是,您的日志文件应与系统其余部分一样安全。可以从原始日志文件中获取大量与安全相关的信息。

答案 1 :(得分:-1)

如果通信已经是HTTPS,并且您不担心数据被拦截,则可以使用串行化

之类的东西。

$(your_password_field).serialize();

另一个想法是,如果您在Python服务器上使用某些框架,请查看其文档。例如,这篇文章显示了如何在Django中使用序列化:

https://simpleisbetterthancomplex.com/tutorial/2016/08/29/how-to-work-with-ajax-request-with-django.html

这里还有一个有趣的讨论:

SSL Alternative - encrypt password with JavaScript submit to PHP to decrypt