在安全审核之后,我正在尝试在我们的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()的方法中设置规则,除了帮助类外?
答案 0 :(得分:0)
构建自己的类时,可以通过使构造函数成为私有(或内部)来阻止访问。但是当你处理从其他地方提供的现有课程(比如BCL)时,你必须使用允许的内容。
您最好在此强制执行安全Cookie,以便在更高级别构建架构,接受SecureCookie
或IEnumerable<SecureCookie>
作为所需函数的参数。