Нужно ли дезинфицировать Javascript в следующей ситуации? - PullRequest
1 голос
/ 03 января 2012

Мой вопрос касается санации. Нужно ли дезинфицировать JavaScript в следующей ситуации?

Я отправляю массив javascript как Json в php через ajax. Массив будет обрабатываться в php, после чего некоторые данные будут опубликованы в mysql. Обратите внимание, что пользователь никогда не записывает значения . Массив создается на основе кнопок, нажимаемых пользователем.

При дальнейшем чтении

На основе Sanitize (радиокнопки, флажки и ) Я предполагаю, что мне нужно очистить JavaScript. Если это правильно, какую очистку вы бы порекомендовали мне сделать?

Массив, который я использую, - это многомерный массив, такой как Array [5] [3] = 2. Он должен содержать только числовые значения.

Ответы [ 2 ]

4 голосов
/ 03 января 2012

Существует только одно простое правило, которое нужно знать о санитарной обработке:

  1. Никогда не доверяйте клиенту.

Итак, следование этому правилу означает, что оно не имеет значенияочищаете ли вы входные данные на клиенте или нет.Вам все еще нужно санировать его на сервере.

Чтобы глубже погрузиться в конкретный случай, недостаточно доверять одному только JavaScript для выполнения этой работы, поскольку некоторые люди могут не включать JavaScript.Или кто-то со злым умыслом может сделать эти HTTP-вызовы извне среды браузера, пропустив JavaScript полностью.

3 голосов
/ 03 января 2012

Не думайте, что это «дезинфекция JavaScript», вы всегда должны знать обо ВСЕХ входных данных или значениях, которые вы используете в SQL-запросе, или выводить непосредственно на экран., не дезинфицируется, однако вы можете быть достаточно близко к «безопасному», санируя и проверяя максимальную длину и т. д.

Имейте в виду, что большинство атак не так просты:сложные атаки с использованием определенных векторов, скажем, для версий Microsoft SQL Server или MYSQL и т. д .;

Это может быть шестнадцатеричный / ASCII или кириллический алфавит, вы никогда не знаете.* Никогда не доверяйте никаким данным.

...