HTML.Encode () - Что/Как это предотвращает проблемы безопасности сценариев в ASP.NET?

new String(”xyz“) наверняка создаст новый экземпляр. "abc" и "xyz" хранятся в пуле констант класса, x = x + y создает StringBuilder под капотом и, следовательно, создает new String, поэтому количество строк здесь равно 4.


Однако компилятор может заменить x + y константой ("xyzabc").

11
задан Achilles 18 June 2009 в 19:03
поделиться

2 ответа

См. Server.HTMLEncode :

Метод HTMLEncode применяет HTML кодировка в указанную строку. это полезен как быстрый метод кодирование данных формы и другого клиента запросить данные, прежде чем использовать их в своем Веб приложение. Кодирование данных конвертирует потенциально опасные символы их эквиваленту в кодировке HTML.

Если кодируемая строка не DBCS, HTMLEncode конвертирует символы следующим образом:

  • Знак «меньше» (<) преобразуется в & lt; .
  • Знак «больше» (>) преобразуется в & gt; .
  • Символ амперсанда (&) преобразуется в & amp; .
  • Символ двойной кавычки (") преобразуется в & quot; .
  • Любой символ кода ASCII чей код больше или равен 0x80 преобразуется в & # , где является значением символа ASCII.

Это означает, что если вы собираетесь сбросить некоторые данные в поток запроса и эти данные были сохранены в базе данных из поля, введенного пользователем, это не позволит пользователям сказать, что их первый имя:

<script type="text/javascript">
    function doSomethingEvil() { /* ... */ }
</script>

В этом примере Server.HTMLEncode будет кодировать символы <, > и ", оставив это:

&lt;script type=&quot;text/javascript&quot;&gt;
    function doSomethingEvil() { /* ... */ }
&lt;/script&gt;

который при отображении в браузере будет выглядеть так:

вместо фактического выполнения.

26
ответ дан 3 December 2019 в 03:04
поделиться

, он предотвращает атаки XSS (межсайтовый скриптинг), поскольку, если он предотвращает ввод пользователя, превращающийся в скрипты которые можно использовать для выполнения этого типа атаки

3
ответ дан 3 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: