Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript req.body在I console.log进入节点时显示密码_Javascript_Html_Node.js - Fatal编程技术网

Javascript req.body在I console.log进入节点时显示密码

Javascript req.body在I console.log进入节点时显示密码,javascript,html,node.js,Javascript,Html,Node.js,我在后端使用NodeJs,并从一个表单收集用户的用户名和密码 我发现它显示了表单中的用户名和密码 这是否意味着我的代码易受攻击?还是应该如此 尽管用户的密码被散列并存储在数据库中。是,req.body将包含传递给它的所有数据,包括密码 只是不要将其发送到生产环境中的控制台 相反,您可以使用这些值来验证用户、保存在数据库中或执行任何其他需要执行的逻辑 如果req.body没有密码,那么如何验证尝试登录的用户?是,req.body将包含传递给它的所有数据,包括密码 只是不要将其发送到生产环境中的控制

我在后端使用NodeJs,并从一个表单收集用户的用户名和密码

我发现它显示了表单中的用户名和密码

这是否意味着我的代码易受攻击?还是应该如此


尽管用户的密码被散列并存储在数据库中。

是,
req.body
将包含传递给它的所有数据,包括密码

只是不要将其发送到生产环境中的控制台

相反,您可以使用这些值来验证用户、保存在数据库中或执行任何其他需要执行的逻辑


如果
req.body
没有密码,那么如何验证尝试登录的用户?

是,
req.body
将包含传递给它的所有数据,包括密码

只是不要将其发送到生产环境中的控制台

相反,您可以使用这些值来验证用户、保存在数据库中或执行任何其他需要执行的逻辑


如果
req.body
没有密码,那么如何验证尝试登录的用户?

发送到服务器的任何表单数据都必须在服务器上可见。这是正常的。这就是客户端向服务器发送数据的方式

只有在HTTP(而不是HTTPS)上运行它才是不安全的,这样中间的连接点可以看到密码,或者服务器的DNS可能被劫持,或者如果你在服务器上做了一些不安全的事情(存储不正确,登录到日志文件等等)。


如果您运行的是安全的https,并且您在服务器上散列密码,只存储一个散列,并且为数据库的安全采取了适当的安全措施,那么您将执行大多数站点所做的操作。

发送到服务器的任何表单数据都必须在服务器上可见。这是正常的。这就是客户端向服务器发送数据的方式

只有在HTTP(而不是HTTPS)上运行它才是不安全的,这样中间的连接点可以看到密码,或者服务器的DNS可能被劫持,或者如果你在服务器上做了一些不安全的事情(存储不正确,登录到日志文件等等)。


如果您运行的是安全的https,您在服务器上散列密码,只存储一个散列,并且为数据库的安全采取了适当的安全措施,那么您将执行大多数网站所做的操作。

如果您的代码中需要打印,您可以使用环境标志,通常我会在config.js中设置一个属性,例如,“devMode”:true,则我使用此属性进行打印,例如:

const{devMode}=require('./config.js');

if(devMode)console.log('helloworld')


在为生产部署时,只需将devMode更改为false

如果代码中需要打印,可以使用环境标志,通常我在config.js中设置一个属性,例如,“devMode”:true,然后我使用此属性进行打印,例如:

const{devMode}=require('./config.js');

if(devMode)console.log('helloworld')


当您为生产部署时,只需将devMode更改为false

要比较的密码最好在数据库中进行散列,但用户键入的密码在发送到服务器之前通常不会进行散列以进行比较。这就是
req.body
中的内容。只是在记录潜在的敏感信息时要小心。要比较的密码可能会在数据库中散列,但用户键入的密码通常不会散列,直到发送到服务器。这就是
req.body
中的内容。只是要小心记录潜在的敏感信息。