热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

node.jsmysql防注入_javascript阻止Node.js中的SQL注入

是否有可能阻止Node.js中的SQL注入(最好使用模块),就像PHP具有保护它们的PreparedStatements一样。如果是这样,怎么样

是否有可能阻止Node.js中的SQL注入(最好使用模块),就像PHP具有保护它们的Prepared Statements一样。

如果是这样,怎么样? 如果没有,有哪些例子可能会绕过我提供的代码(见下文)。

一些背景:

我正在使用node-mysql模块制作一个带有Node.js + MySql的后端堆栈的Web应用程序。 从可用性的角度来看,该模块很棒,但它还没有实现类似于PHP的Prepared Statements(虽然我知道它是在todo上)。

根据我的理解,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?

});



推荐阅读
author-avatar
木易_迪迪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有