如何避免JavaScript文本字段中的SQL注入?

如何避免JavaScript文本字段中的SQL注入?

问题描述:

我有一个访问sqlite3数据库的JavaScript代码。我想验证我的文本字段值并防止SQL注入。有没有“最佳算法”呢?如何避免JavaScript文本字段中的SQL注入?

- 更新:我正在开发一个Xulrunner桌面应用程序。也许我应该使用xpcom组件中的数据库,这是编译后的(用C编写的),因此用户将无法访问它。

+0

大概Javascript不直接访问数据库,因为Javascript通常在客户端找到。你在服务器上运行什么? – 2011-04-29 20:10:14

+0

dupe? http://*.com/questions/3913837/best-way-to-prevent-sql-injection-using-javascript-or-c – slandau 2011-04-29 20:11:57

+0

你的JavaScript代码是直接访问分贝? – 2011-04-29 20:12:46

通常使用参数化SQL语句避免SQL注入。

这是一篇MSDN文章,介绍如何做到这一点。

这是另一个article,它描述了几种防止sql注入的方法。

SQL注入预防在服务器端完成,没有任何东西可以在客户端做防止它。

+2

是的,但他使用的是sqlite3,我认为它是本地的而不是服务器上的。 – 2011-04-29 20:12:10

+0

@戈登沃利,在这种情况下,我会说服务器端将包含一些形式的语言,如PHP,C#等,不能被终端用户禁用/修改。 – 2011-04-29 20:13:37

+0

@戈登沃利 - 你的意思是他正在访问驻留在客户端的数据库?男人,这是一个概念。从来没有想过它。 – 2011-04-29 20:13:45

我不确定你处于什么类型的环境,但请注意,由于JavaScript的性质以及它经常在浏览器中执行的方式等,代码注入攻击相对容易,所以任何验证你在客户端做的事情可能会受到任何认真对待攻击的人的支持。不是说你不应该验证,只是你应该知道你需要注意你正在运行的地方,以确认验证是否足够。