Вы должны не полагаться на ValidateInput
для «кодирования» ваших значений. Он не кодирует значения - он просто полностью отвергает некоторые значения. И даже если вы используете его, вы все равно должны кодировать все свои значения , которые вводятся пользователем и отображаются на сайте любым образом.
На самом деле, из-за этого - я никогда не использовал это подтверждение самостоятельно. Например, если бы все, что я делал, полагалось на эту проверку, люди не смогли бы вводить некоторые очень простые вещи в такие формы, как эта, например, пытаясь показать пример HTML.
Но даже в документации MSDN и каждой прочитанной мной книге сказано, что проверка ASP.NET там не защищает вас от любого возможного злонамеренного ввода. По сути, вы можете не полагаться на него, чтобы защитить своих пользователей. Вы по-прежнему должны кодировать значения, которые вы отображаете (и вы должны кодировать их только так, как вы их отображаете, в противном случае вы получите все виды ошибок отображения, когда вы дважды закодировали вещи)