【发布时间】:2017-01-31 16:57:05
【问题描述】:
我想知道有关防止 SQL 注入的最佳做法。
让我们从客户端 (index.html) 说,您有一个表单,它通过 $.ajax 向您的服务器端页面提交一个字符串值数组
var data_to_be_submitted = {
"searchTerms":descriptorArray,
};
$.ajax({
url: 'get_fact_trans_volume.xsjs',
data:data_to_be_submitted,
....});
在服务器端 (get_fact_trans_volume.xsjs) 我做这样的事情:
var searchTerms = [];
searchTerms = $.request.parameters.get("searchTerms") ;
var quotedAndCommaSeparated = "'" + searchTerms.join("','") + "'";
var sqlQuery = "Select ... from table t where t.field in (%S)"
sqlQuery = sqlQuery.replace("%S", searchTerms .toString());
这是遵循正确的最佳实践吗?使用 Javascript 构造 SQL 查询的好方法是什么?
【问题讨论】:
-
您使用的是什么服务器端 SQL 库?
-
如果您的库不支持预编译语句,请查找另一个。
-
我不是。我应该澄清一下,我无权访问任何 SQL 查询构建器库,由于限制,我无法将它们引入。所以我需要知道如何使用 Vanilla JS 来做到这一点。
-
对,正确答案是“使用准备好的语句”。
-
他似乎在使用一种叫做 OpenSAP XSJS 的东西。这是我第一次听说,所以我几乎无法给出任何建议。
标签: javascript sql node.js code-injection hana