javascript - 防止 WebSQL 数据库中的 SQL 注入(inject)? (如何处理数据中的引号?)

标签 javascript webkit sql-injection web-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 - 防止 WebSQL 数据库中的 SQL 注入(inject)? (如何处理数据中的引号?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148599/

相关文章:

javascript - 内容保留在粘性标题下

javascript - 从谷歌加载 jquery 不起作用(对我来说)

javascript - webkit 中的 Jquery css 值

javascript - 重置类时 CSS 动画不会重新启动

javascript - 使用变量处理字符串sql查询中的单引号

javascript - 为什么我的 SVG 图像在 chrome 上显示完美,但当我在 iPhone 上打开它时却根本不显示?

javascript - 将字符串收集到 forEach 内的单个数组中

pygtk 界面中的 Javascript 界面?

php - 在 PHP 的 SQL 查询中将变量转换为整数

php - 即使使用 SQLite3::escapeString() 并且不要求用户输入,是否存在 SQL 注入(inject)漏洞?