Безопасность ввода пользователя .net - PullRequest
2 голосов
/ 15 января 2011

У меня есть клиентский менеджер пользовательских настроек.настройки сохраняются через веб-сервис.Я сериализую их в JSON.Так как перед отправкой можно манипулировать json, я хочу затем проверить его на сервере.

Каковы лучшие практики, на что мне обратить внимание?Проверка перед десериализацией?Какой вид вредоносного ввода может использовать пользователь?Может ли он манипулировать json, чтобы он как-то навредил мне при десериализации с использованием десериализации по умолчанию asp net javascript?

var userinput = { param1 : "test", categories : ["2312", "4324", "2122"] }

этот отправляется на сервер, сериализуется.Десериализовано на сервере в граф объектов.

public class usersettings
 public property param1 as string
 public property categories as string()
end class

param1 проверяется регулярным выражением, может быть, только буквы и цифры, например, начинаются с буквы, максимум 10 знаков.категории должны быть различны, не более 10 ...

usersettingsclass - это объект linq to sql, который может быть непосредственно передан на sqlserver.

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

1 Ответ

0 голосов
/ 21 января 2011

Чувствительны ли эти настройки безопасности? Что происходит, если пользователь с ними связывается?

Если единственное, что происходит, это то, что вы можете сделать исключение, не беспокойтесь.

Если эти настройки могут каким-либо образом поставить под угрозу безопасность, то они не должны быть на стороне клиента, если они не зашифрованы сервером , прежде чем они будут отправлены клиенту. Другими словами, они «на клиенте» только из соображений масштабируемости, а не потому, что клиент каким-либо образом манипулирует ими.

Если эти настройки чувствительны к безопасности, и они должны быть модифицируемы клиентом, если у вас возникшая ситуация. Если javascript может их изменить, то может и пользователь.

Наконец, если все, что вас беспокоит, так это то, что клиент каким-то образом манипулирует данными json, чтобы вызвать исключение десериализации, вам следует выяснить, есть ли какие-либо уязвимости в вашей библиотеке json. Если нет, не волнуйтесь об этом, пока они не будут.

Поскольку вы упомянули, что используете встроенные библиотеки ASP.NET, я могу сказать, что мне неизвестно о какой-либо известной уязвимости в этих библиотеках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...