首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js中的变量查询

node.js中的变量查询
EN

Stack Overflow用户
提问于 2013-09-27 01:53:39
回答 2查看 100关注 0票数 0

我正在尝试修改服务器端(node.js)上的一个查询,如下所示:

代码语言:javascript
复制
var http = require('http');
var query = "SELECT * FROM Users WHERE Email='Test.User@TestUser.com'";

这是硬编码的查询。我正在尝试这样做(email是从HTML文档中的输入文本区域拉入的变量):

代码语言:javascript
复制
var http = require('http');
var query = "SELECT * FROM Users WHERE Email=" + "'" + email + "'";

我使用JQuery来处理来自javascript文件的请求:

代码语言:javascript
复制
$.ajax({
        url: "http://127.0.0.1:8000/",
        type: "POST",
        success: function(dataRcvd) {
            alert(dataRcvd);
        }

如果我知道如何做到这一点,我就可以用不同的SQL查询/存储过程动态地更新var query

EN

回答 2

Stack Overflow用户

发布于 2013-09-27 02:51:57

代码语言:javascript
复制
// server.js
var http = require('http');
function handler(req, res){
  console.log('Server got '+req.body.email);
  var query = "SELECT * FROM Users WHERE Email=" + "'" + req.body.email + "'";
  someAsyncSQLCall(query, function(rows){
    res.send(200, rows);
  });
};

http.createServer(handler).listen(3000);

//client.js
$.ajax({
        url: "http://127.0.0.1:8000/",
        type: "POST",
        data: {email: 'value' },
        success: function(dataRcvd) {
            alert(dataRcvd);
        }
票数 0
EN

Stack Overflow用户

发布于 2013-09-27 07:06:35

这是一个非常糟糕的想法(字符串连接);任何人都可以在您的表单中发布SQL注入攻击,并删除您的数据库或做任何其他邪恶的事情。

我不确定您使用的是哪种数据库,但它们中的大多数都有一种执行参数化查询的方法,可以让您免受此类攻击。

Checkout node-postgres (pg模块),它提供了在使用PostgreSQL的情况下如何执行此操作的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19035228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档