node.js mysql防注入_防止在Node.js中进行SQL注入

是否有可能以与PHP具有防止它们攻击的Prepared语句相同的方式来防止在Node.js(最好是使用模块)中进行SQL注入。

如果是这样,怎么办?如果没有, 那么有哪些示例 可以绕过我提供的代码(请参见下文)。

一些上下文:

我正在使用node-mysql模块制作一个包含Node.js+MySql的后端堆栈的Web应用程序。从可用性的角度来看,该模块很棒,但是它还没有实现类似于PHP的PreparedStatements的功能(尽管我知道它在待办事项上。

据我了解,PHP的预准备语句实现尤其有助于防止SQL注入。不过,我担心我的node.js应用程序可能会遭受类似的攻击,即使默认情况下提供了字符串转义(如下面的代码片段)。

node-mysql似乎是node.js最受欢迎的mysql连接器,所以我想知道其他人可能在做什么(如果有的话)来解决此问题-

甚至从一开始甚至与node.js都存在问题(由于涉及到用户/客户端输入,因此不确定如何实现)。

我是否应该 暂时切换到node-mysql-native,因为它确实提供了准备好的语句?我对此很犹豫,因为它似乎不像node-mysql那样活跃(尽管这可能意味着它已经完成了)。

这是用户注册代码的一部分,该代码使用了sanitizer模块以及node-mysql的准备好的类似语句的语法(如上所述,该字符进行了字符转义),以分别防止跨站点脚本和sql注入:

// Prevent xss

var clean_user = sanitizer.sanitize(username);

// assume password is hashed already

var post = {Username: clean_user, Password: hash};

// This just uses connection.escape() underneath

var query = connection.query('INSERT INTO users SET ?', post,

function(err, results)

{

// Can a Sql injection happen here?

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值