2

セキュリティを形成するためにマイクロソフトのアンチ xss ライブラリを使用しています。HtmlFormUrlEncode メソッドを使用しています。

記録したデータをデコードするにはどうすればよいですか?

サンプルデータ :

mail%40sample.com
%c3%96nder  
4

1 に答える 1

7

AntiXSS はデコードを提供しません。.NET フレームワークがデコードを行う傾向があります。確かに、UrlDecodeは実際にそれを正しく取得する必要があります。

ただし、手動で行う場合は、元の文字列と同じ長さの char[] 配列を作成し、文字列をループして % を探し、その後 2 文字を取得して、有効な 16 進値を取得し、次の手順を実行して 16 進値を取得します

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()を呼び出して配列に追加します。

(注:コードは私の頭の上から外れており、適切にテストされていません)

于 2011-07-05T13:39:53.883 に答える