V5.3.2 Output Encoding and Injection Prevention
Requirement:#
Verify that output encoding preserves the user's chosen character set and locale, such that any Unicode character point is valid and safely handled. (C4)
Explanation:#
Продукт неправильно обрабатывает, если входные данные содержат кодировку Unicode
Remediation:#
Чтобы сохранить выбранный пользователем набор символов и языковой стандарт, важно правильно закодировать вывод таким образом, чтобы обеспечить безопасность приложения, а также сохранить целостность ввода пользователя. Вот пример того, как это сделать в Java:
В этом примере метод Charset.defaultCharset() используется для получения предпочтительного набора символов пользователя, а метод Locale.getDefault() используется для получения предпочтительного языкового стандарта пользователя. Затем метод URLEncoder.encode() используется для правильного кодирования пользовательского ввода для HTML. Закодированный ввод затем записывается в ответ, при этом кодировка символов и языковой стандарт устанавливаются в предпочтительные значения пользователя. Это гарантирует, что пользовательский ввод будет правильно закодирован для отображения в приложении, а также сохранит выбранный пользователем набор символов и языковой стандарт. Важно отметить, что конкретная функция кодирования и используемые методы будут зависеть от языка программирования и контекста, но общий подход к сохранению выбранного пользователем набора символов и локали при правильном кодировании вывода остается прежним.