【发布时间】:2011-12-30 23:17:54
【问题描述】:
我需要使用 javascript 修改该值,使其准备好作为 SQL 插入查询的一部分。
目前我有以下代码来处理单引号 ' 字符。
value = value.replace(/'/g, "\\'");
此代码可以正常工作。现在我注意到独立的反斜杠会导致错误。
如何删除那些独立的反斜杠?
【问题讨论】:
-
您永远不应该信任来自用户的数据以直接在查询中使用的方式。转义数据应该在服务器端完成,否则使用 SQL 注入攻击您的风险很大,因为很容易绕过 JavaScript。
-
我很害怕您正在使用 JavaScript 创建 SQL 语句。您是否真的有一个用 JavaScript 编写的 SQL 库(我认为不存在),或者您是否将 SQL 语句发送到 Web 服务器以在那里执行?如果是后者,您有*主要*安全漏洞!您必须在服务器上创建 SQL 语句。
-
我真的希望这是某种服务器端 JavaScript,比如 nodejs。
-
不要使用 JavaScript 更改进入数据库的内容。显然,这是一个关于防止字符注入的安全问题。我可以关闭 JavaScript,或者简单地使用 Firebug 删除您的客户端代码,然后将我想要的任何内容注入您的数据库。
-
@AasmundEldhuset:“你真的有一个用 JavaScript 编写的 SQL 库吗(我认为不存在)” JavaScript 只是一种语言。我一直在服务器端(以及桌面,非网络)使用它。事实上,它的一些最初用途是在服务器端,在旧的 Netscape Application Server 中。传统上,它在网络浏览器中的使用比其他任何地方都多,但它从未仅限于此,服务器端 JavaScript 正在兴起。
标签: javascript regex