Если вы имеете в виду санирование пользовательского ввода, только место, вы можете сделать это безопасно на стороне сервера. Вы не можете быть уверены, что что-то сделано на стороне клиента, слишком легко обойти код на стороне клиента.
Это похоже на проверку данных. Приятно проводить проверку данных (убедитесь, что ключевые поля формы заполнены допустимыми значениями, например) на клиенте, потому что немедленная обратная связь делает хороший пользовательский опыт, но делает это не является заменой для этого на сервере, потому что тривиально легко обойти проверку на стороне клиента.
Но с дезинфицирующим входом вы даже не хотите пытаться сделать это на стороне клиента; предположим, что он не подвергается санитарной обработке и дезинфицирует его на сервере.
В ASP.Net, если ввод данных, которые вы дезинфицируете, представляет собой строку, которую вы позже собираетесь отображать на странице HTML, и вы хотите убедиться, что она не содержит собственных HTML-тегов, вы можете использовать HttpServerUtility.HtmlEncode
для кодирования строки (в основном, поворот <
в <
и др.).
Итак, если я использую редактор TinyMCE на своей странице, который делает свою собственную кодировку, недостаточно и я должен сделать свою собственную кодировку на стороне сервера? – shivesh
@shivesh: Да, этого недостаточно. Вы не можете доверять, что * любая обработка клиентской стороны была выполнена вообще. Тривиально легко отправить запрос на ваш сервер с незарегистрированными данными, минуя все ваши клиентские вещи, пытаясь взломать ваш сайт. Вы должны рассматривать все входящие данные как подозреваемые.Если данные должны быть закодированы уже, вы можете использовать тот факт, что он не должен указывать на недопустимую активность в соответствующей учетной записи, хотя я немного удивлен (не использую ее), что TinyMCE кодирует вещи перед отправкой их вам. Обычные элементы управления вводами нет. –
Можете ли вы порекомендовать библиотеку для проверки на стороне сервера? Содержание tinymce имеет богатый html, поэтому будет сложно создать что-то, что идеально с нуля. – shivesh