Анти-XSS библиотека декодирования - PullRequest
2 голосов
/ 30 июня 2011

Я использую антивирусную библиотеку Microsoft для формирования безопасности. Я использую метод HtmlFormUrlEncode.

Как я могу декодировать мои записанные данные?

пример данных:

mail%40sample.com
%c3%96nder  

1 Ответ

7 голосов
/ 05 июля 2011

AntiXSS не обеспечивает декодирование - .NET Framework делает это за вас.Действительно, UrlDecode должен на самом деле получить его правильно.

Однако, если вы хотите сделать это вручную, вы можете создать массив char [] такой же длины, что и исходная строка, а затемпереберите строку, ищите% и затем захватываете два символа после, гарантируя, что они действительны в шестнадцатеричном формате, а затем выполните следующее, чтобы получить шестнадцатеричное значение

if ((h >= '0') && (h <= '9'))
{
    return (h - '0');
}
if (((h >= 'a') && (h <= 'f')) ||
    ((h >= 'A') && (h <= 'F')))
{
    return ((h - 'a') + 10);
}

Как только вы получите оба значения, вызатем объедините

byte b = (byte) ((firstByte << 4) | secondByte);

и добавьте его в массив, вызвав UTF8Encoding.GetChars ()

(примечание: код находится на моей голове и не проверенправильно)

...