数据库
首页 > 数据库> > javascript – 在WebSQL数据库中阻止SQL注入? (如何处理数据中的引号?)

javascript – 在WebSQL数据库中阻止SQL注入? (如何处理数据中的引号?)

作者:互联网

我目前正在将mysql数据库的xml导出导入到websql数据库中,以用于在线移动体验.

一切正常,花花公子,直到我插入的任何字符串都有双引号.通常,在PHP中,我会在插入时使用类似:mysql_real_escape_string的东西.

我知道我可以尝试的选项是编写正则表达式并创建用于添加/删除斜杠的函数.谷歌上有很多这方面的例子 – 但我希望看到的是,是否有其他人遇到过这种情况,并且可能有更好的解决方案.

谢谢你的帮助!

解决方法:

忘了逃避.做正确的事:使用占位符.在这种情况下,数据永远不会被视为原始数据字符串.在Web SQL中,可以使用executeSql完成此操作.有关其工作原理的说明,请参阅pre-processing section.

直接来自文档介绍的示例:

db.readTransaction(function (t) {
  t.executeSql('SELECT title, author FROM docs WHERE id=?', [id], function (t, data) {
    report(data.rows[0].title, data.rows[0].author);
  });
});

无论id变量是什么,这个请求都会查找逐字值,永远不会被解释为命令的一部分.

标签:javascript,sql-injection,webkit,web-sql
来源: https://codeday.me/bug/20190530/1183714.html