加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 当您的用户被黑客攻击时该怎么办

发布时间:2020-12-16 09:36:36 所属栏目:asp.Net 来源:网络整理
导读:最近我的日志文件中出现了一个用户代理“Microsoft URL Control – 6.01.9782”导致问题的趋势.当我追踪知识产权时,它来自中国或印度.我们的网站是特定于当地的,因此我们很少有来自城外的访客. 有趣的是,我通过openID看到了有效的登录用户.我猜测正在发生的
最近我的日志文件中出现了一个用户代理“Microsoft URL Control – 6.01.9782”导致问题的趋势.当我追踪知识产权时,它来自中国或印度.我们的网站是特定于当地的,因此我们很少有来自城外的访客.

有趣的是,我通过openID看到了有效的登录用户.我猜测正在发生的事情是用户计算机cookie被克隆并且病毒正在劫持会话.我使用内置的asp.net身份验证来处理我的cookie,微软不包括对IP或用户代理的任何检查,所以我知道我可以复制cookie并伪造登录.

我看到Google和Facebook帐户都是这样登录的.

我的问题是:

A)有一种简单的方法可以使asp.net身份验证更安全吗?

B)我应该怎么做这些账户? (最佳实践)我不收集任何个人信息,也无法联系我的一些用户.

解决方法

您可以使用HttpOnly阻止客户端脚本通过document.cookie属性访问cookie. Cookie仍然会进行往返,但脚本无法访问,也不会被盗.

使用ASP.NET 1.1,在Global.asax中添加以下代码:

protected void Application_EndRequest(Object sender,EventArgs e)
{    
    foreach(string cookie in Response.Cookies)    
    {        
        const string HTTPONLY = ";HttpOnly";        
        string path = Response.Cookies[cookie].Path;       
        if (path.EndsWith(HTTPONLY) == false)       
        {            
            //force HttpOnly to be added to the cookie           
            Response.Cookies[cookie].Path += HTTPONLY;        
        }    
    }
}

使用ASP.NET 2.0及更高版本,您可以使用web.config:

<system.web>
    <httpCookies httpOnlyCookies="true" />
</system.web>

如果安全性在您的系统中非常重要,那么更好的方法是投资到您的站点的SSL(安全套接字层)连接.然后,您可以设置一个cookie属性,该属性仅在存在SSL连接时才会传输cookie. SSL不保护cookie在用户计算机上不被读取或操纵,但它确实阻止cookie在传输过程中被读取,因为cookie是加密的.
此方法需要获取SSL证书.

这可以在web.config的httpcookies元素中完成.

<system.web>
    <httpCookies requireSSL="true" />
</system.web>

如果连接不是SSL,则cookie不会发送到服务器.

看更多:

ASP.NET Cookies FAQ

Design and Deploy Secure Web Apps with ASP.NET 2.0 and IIS 6.0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读