Tag: node mysql

防止Node.js中的SQL注入

是否有可能防止SQL注入在Node.js(最好与一个模块),就像PHP有防备他们的Prepared语句相同的方式。 如果是这样,怎么样? 如果不是, 那么有些示例可能会绕过我提供的代码(请参见下文)。 一些上下文: 我正在使用node-mysql模块构build一个由Node.js + MySql组成的后端堆栈的Web应用程序。 从可用性的angular度来看,这个模块非常棒,但是它还没有实现类似于PHP的Prepared Statements (尽pipe我知道它是在待办事项上 )。 从我的理解来看,除了别的之外,PHP的准备语句的实现在预防SQL注入方面起了很大作用。 不过,我担心, 即使使用默认提供的string转义 (如下面的代码片段),我的node.js应用程序也可能面临类似的攻击。 node-mysql似乎是node.js最stream行的mysql连接器,所以我想知道其他人可能在做什么(如果有的话)来解决这个问题 – 或者如果它甚至是node.js的问题开始(不知道这将不会如何,因为涉及用户/客户端input)。 我应该暂时切换到node-mysql-native ,因为它提供了准备好的语句? 我不愿意这样做,因为它似乎不像node-mysql那样活跃(尽pipe这可能意味着它是完整的)。 下面是用户注册代码片段,它使用了卫生清理器模块,以及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 […]