使用Javascript防止WebSQL注入

WebSQL injection prevention with Javascript

本文关键字:注入 WebSQL 防止 Javascript 使用      更新时间:2023-12-18

我四处搜索,但没有找到这个问题的答案。

Javascript中是否有类似于PHP的mysql_real_escape_string的函数,可以在将用户输入写入WebSQL数据库之前进行安全的用户输入?

如果没有,有人知道我可以使用的自定义函数吗?

更新:所以似乎没有本机函数,所以我写了:

function sql_real_escape_string(val){
    var val = val.replace('"','"');
    val = val.replace('''','’');
    return val;
}

为了安全起见,我还应该替换其他角色吗?

在插入数据库时处理用户输入的最佳答案是使用参数化。Web SQL API支持以下内容:

var db = openDatabase('mydb', '1.0', 'my database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('INSERT INTO foo (id, text) VALUES (?, ?)', [id, userValue]);
});

取而代之的是:

db.transaction(function (tx) {
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "user-entered value")');
});