Есть ли у утомительного модуля для node.js какая-либо функция для предотвращения внедрения sql?

К вашему сведению, я работаю над предотвращением внедрения sql с помощью Microsoft Azure и утомительного модуля.

Я видел функцию под названием «escape» в модуле mysql, но я не уверен, есть ли аналогичная функция в утомительном модуле или нет.


person user8332086    schedule 10.05.2018    source источник
comment
tediousjs.github.io/tedious/parameters.html   -  person Álvaro González    schedule 10.05.2018


Ответы (1)


Экранирование — это древний метод, который раздражает в использовании, а также подвержен ошибкам (легко забыть переменную или дважды экранировать ее — и нередко можно увидеть, как используется неправильная экранирующая функция). Любая приличная библиотека базы данных, написанная в последнее десятилетие, должна поддерживать подготовленные операторы или от нее нужно отказаться.

В боковом меню утомительного сайта есть заметный Использование параметров запись первого уровня, которая охватывает это:

вот поддержка параметризованных операторов и использование параметров при вызове процедур.

Входные параметры добавляются в запрос с помощью Request.addParameter(), а выходные параметры добавляются с помощью Request.addOutputParameter() Имена параметров.

В T-SQL имена параметров обозначаются префиксом «@».

select id from address where first_name = @name and age > @age

Имена параметров, используемые в этом API, не включают «@».

request.addParameter('name', ..., ...);
request.addParameter('age', ..., ...);

Они могли бы предоставить менее подробный синтаксис, но он должен выполнить свою работу.

person Álvaro González    schedule 12.05.2018