【问题标题】:What is the correct way to prevent SQL injection on server side JS [closed]在服务器端 JS 上防止 SQL 注入的正确方法是什么 [关闭]
【发布时间】: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


【解决方案1】:

有一个 PrepareStatement 类。

http://help.sap.com/hana/SAP_HANA_XS_JavaScript_API_Reference_en/$.db.PreparedStatement.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多