我怎样才能在JSON中安全地使用用户提供的文本?

我有一个Node应用程序需要用户input(一个用户名和密码),并提出请求到另一个API与这两件事情包括在内。 我有一个function,应该这样做:

getTokenFromLogin = function(user, pass) { var promise = new Promise(function(resolve, reject) { var options = this.options; options.url = endpoints.login; options.method = 'POST'; options.form = { 'username': user, 'password': pass }; request(options, function (err, httpResponse, body) { if (err) return reject(err); resolve(body); }); }); return promise; }; 

然而,从理论上讲,攻击者不能只是input一个JSON格式的string来处理我的请求对象呢? 如果是这种情况,我如何确保这些string是安全的? 我已经看到了两个方法,JSON.parse()和JSON.stringify(),但我没有发现什么澄清我应该使用什么,以及如何这些方法可以阻止这种types的漏洞。

答案是你的代码已经“安全”了。 string是string(假设你正在检查user ,当然是pass ),string不能自动地与对象交互。

现在,如果您发送请求的服务器devise不良/编码错误,并且在插入数据库时​​没有正确处理其input( userpass ),那么情况就完全不同了。 但是对于提出请求,这里没有安全问题。