0

在安全审核之后,我试图在我们的 MVC 应用程序中强制创建安全的 HttpCookies。我想出了一个帮助类来创建它们:

public static class CookieHelper
{
    /// <summary>
    /// Create Cookie.
    /// </summary>
    /// <param name="name">Cookie name.</param>
    /// <param name="value">Cookie value.</param>
    /// <returns>A cookie.</returns>
    public static HttpCookie CreateSecureCookie(string name, string value)
    {
        if (string.IsNullOrEmpty(name))
        {
            throw new ArgumentNullException("name");
        }

        var cookie = new HttpCookie(name, value);

        cookie.Secure = true;

        return cookie;
    }
}

我迷上了这个我们目前正在创建cookie的地方,所以我们现在没事了。但是,我们是一个成长中的组织,很多人将在代码库中工作,所以我有点担心人们将来会在这个助手类之外创建新的 cookie。

有没有办法可以在 Resharper、StyleCop 或其他任何东西中设置一个规则来阻止新的 HttpCookie() 的实例化,除了在辅助类中?

4

1 回答 1

0

在构建自己的类时,您可以通过将构造函数设为私有(或内部)来防止访问。但是,当您处理从其他地方(如 BCL)提供的现有类时,您必须使用允许的内容。

您最好在这里强制执行安全 cookie,以在更高级别构建一个架构,该架构接受 aSecureCookieIEnumerable<SecureCookie>作为所需函数的参数。

于 2013-05-06T13:41:33.693 回答