Хороший способ санировать вход у классического asp

Этого можно добиться с помощью обновления по API запросов и сценария, который разбивает fieldA и сохраняет полученный массив в fieldB:

POST test/_update_by_query
{
  "script": {
    "inline": "ctx._source.fieldB = /\\s+/.split(ctx._source.fieldA);",
    "lang": "painless"
  },
  "query": {
    "match_all": {}
  }
}

Вы получите это: [114 ]

    {
      "fieldA" : "The brown fox",
      "fieldB" : [
        "The",
        "brown",
        "fox"
      ]
    }

7
задан Joel Coehoorn 21 November 2011 в 03:46
поделиться

5 ответов

Да можно использовать параметризованные запросы в классическом ASP (более точно, классическом ADO).

Вот ссылка.

Что касается кодирования вывода, я мог бы испытать желание создать обертку для последней библиотеки Microsoft Anti-XSS и назвать его с Сервером. CreateObject. Я далек от эксперта по такого рода вещи, поскольку я провожу намного больше времени в .NET, таким образом, я только думаю, что это работало бы.

Сервер. HTMLEncode действительно не достаточно хорош, поскольку он только помещает в черный список несколько символов кодирования. Библиотека Anti-XSS намного лучше, поскольку она добавляет в белый список то, что приемлемо.

9
ответ дан 6 December 2019 в 09:23
поделиться

Всегда используйте Сервер. HTMLEncode для очистки ввода данных пользователем.

Например, если Вы устанавливаете переменную от текстового поля формы:

firstName = Сервер. HTMLEncode (обрезка (request.form ("firstname")))

7
ответ дан 6 December 2019 в 09:23
поделиться

Не упустите Внедрение SQL. Не конкатенируйте ввод данных пользователем к SQL представляют в виде строки и затем выполняют его. Вместо этого всегда используемые параметризированные запросы.

2
ответ дан 6 December 2019 в 09:23
поделиться

Существует набор функций, запускающихся с, такой как IsNumber, IsArray и так далее это могло бы представлять интерес. Также, если Вы ожидаете целое число, Вы могли бы использовать CLng(Request("blabla")) для получения его таким образом если это не целое число, функция CLng повысит ошибку.

1
ответ дан 6 December 2019 в 09:23
поделиться

Один способ сделать это мог бы состоять в том, чтобы добавить регистрацию a header.asp файл, который выполняет итерации через Request объект ища несоответствующие символы. Например:

<%
    for each x in Request.Form ' Do this for Request.Querystring also
        If InStr(x,"<") <> 0 Then
            ' encode the value or redirect to error page?
        End If
    next
%>
1
ответ дан 6 December 2019 в 09:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: