在客户端使用SQL参数的名称是否存在安全风险?

时间:2019-08-09 09:40:09

标签: javascript sql-server security parameters

我有一个运行给定SQL过程并将结果作为序列表返回的Web方法。它可以使用许多过程之一,并且每个过程都需要不同的参数:

  • Proc1需要@StartDate@EndDate
  • Proc2需要@StartDate@EndDate@ResourceType
  • Proc3需要@StartDate@EndDate@ClientName
  • Proc4需要@StartDate@User@ResourceType@RowsToReturn

如果参数作为数组从客户端传递到Web方法,则Web方法需要知道哪个值对应于哪个参数。这意味着名称需要在传递之前与值相关联,这意味着名称需要与客户端JavaScript中的值配对,从而使它们对用户可见。

我的问题是:以这种方式显示参数名称是否会增加系统对入侵的敏感性?还是已经以其他方式向用户显示了它们?

例如(使用jQuery):

$.get(
    "Service.svc/GetData",
    JSON.stringify({
        query: "Proc2",
        params: [
            { name: "@StartDate", val: "01-JAN-2019" },
            { name: "@EndDate", val: "31-JAN-2019" },
            { name: "@ResourceType", val: 12 }
           ]
        }),
    function() { console.log(r.d); },
    "json"
    )

0 个答案:

没有答案