一尘不染

在ASP.NET中加密Cookie

c#

我想在ASP.NET中加密cookie。

在本文中遵循了该方法,但是它的缺点是在内部方法上使用了反射。这导致它在代码审查中被标记-
由于内部实现可能会更改,因此它不是面向未来的。

有没有一种功能相同的方法,不需要在内部方法上使用加密?

我正在使用.NET Framework 3.5 SP1(假设我无法更改框架版本)


阅读 221

收藏
2020-05-19

共1个答案

一尘不染

为什么不使用System.Security.Cryptography中的加密功能对敏感的cookie名称和值进行加密和解密?您可以编写一些实用程序功能来轻松管理它。实用程序功能示例:

private static void SetEncryptedCookie(string name, string value)
{
    var encryptName = SomeEncryptionMethod(name);
    Response.Cookies[encryptName].Value = SomeEncryptionMethod(value);
    //set other cookie properties here, expiry &c.
    //Response.Cookies[encryptName].Expires = ...
}

private static string GetEncryptedCookie(string name)
{
    //you'll want some checks/exception handling around this
    return SomeDecryptionMethod(
               Response.Cookies[SomeDecryptionMethod(name)].Value);
}
2020-05-19