请用node写一个转义函数来防止SQL注入
时间: 2023-06-24 22:05:40 浏览: 136
.net 防止SQL注入的方法
好的,以下是一个简单的 Node.js 转义 SQL 注入的函数:
```javascript
function escapeSqlString(value) {
if (typeof value !== 'string') {
return value;
}
// 使用正则表达式查找需要转义的字符
return value.replace(/[\0\n\r\b\t\\'"\x1a]/g, function (char) {
switch (char) {
case '\0': return '\\0';
case '\n': return '\\n';
case '\r': return '\\r';
case '\b': return '\\b';
case '\t': return '\\t';
case '\x1a': return '\\Z';
case "'": return "''";
case '"': return '""';
default: return '\\' + char;
}
});
}
```
这个函数将会使用正则表达式来查找需要转义的字符,然后根据字符类型进行相应的转义。在使用该函数时,只需要将需要转义的字符串作为参数传递进去即可:
```javascript
const name = escapeSqlString(req.body.name);
const age = escapeSqlString(req.body.age);
const query = `INSERT INTO users (name, age) VALUES ('${name}', ${age})`;
```
请注意,虽然这个函数可以有效地防止 SQL 注入攻击,但也不是绝对安全的。最好的方法是使用参数化查询或 ORM 框架来避免 SQL 注入攻击。
阅读全文