发表于: 2018-01-28 21:09:54

1 525


今天做的事情:完成了简单的拦截,cookie什么的还没有加上,只是简单地做了下判断。

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。

尽管cookie没有病毒那么危险,但它仍包含了一些敏感信息:用户名,计算机名,使用的浏览器和曾经访问的网站。用户不希望这些内容泄漏出去,尤其是当其中还包含有私人信息的时候。

这并非危言耸听,一种名为跨站点脚本攻击(Cross site scripting)可以达到此目的。通常跨站点脚本攻击往往利用网站漏洞在网站页面中植入脚本代码或网站页面引用第三方法脚本代码,均存在跨站点脚本攻击的可能,在受到跨站点脚本攻击时,脚本指令将会读取当前站点的所有 Cookie 内容(已不存在 Cookie 作用域限制),然后通过某种方式将 Cookie 内容提交到指定的服务器(如:AJAX)。一旦 Cookie 落入攻击者手中,它将会重现其价值。

建议开发人员在向客户端 Cookie 输出敏感的内容时(譬如:该内容能识别用户身份):

1)设置该 Cookie 不能被脚本读取,这样在一定程度上解决上述问题。

  2)对 Cookie 内容进行加密,在加密前嵌入时间戳,保证每次加密后的密文都不一样(并且可以防止消息重放)。

  3)客户端请求时,每次或定时更新 Cookie 内容(即:基于第2小条,重新加密)

  4)每次向 Cookie 写入时间戳,数据库需要记录最后一次时间戳(防止 Cookie 篡改,或重放攻击)。

  5)客户端提交 Cookie 时,先解密然后校验时间戳,时间戳若小于数据数据库中记录,即意味发生攻击。

基于上述建议,即使 Cookie 被窃取,却因 Cookie 被随机更新,且内容无规律性,攻击者无法加以利用。另外利用了时间戳另一大好处就是防止 Cookie 篡改或重放。

Cookie 窃取:搜集用户cookie并发给攻击者的黑客。攻击者将利用cookie信息通过合法手段进入用户帐户。

Cookie 篡改:利用安全机制,攻击者加入代码从而改写 Cookie 内容,以便持续攻击。

springmvc.xml:

这里要注意的是,当url较长时,不止一个/的时候,需要打两个*不然无法拦截,这个语法和java单纯的正则表达式不一样,网上也搜不到结果...


加载的bean类:

然后改了下url:

对应的登录注册控制器:

经过试验,可以做到拦截。


明天要做的事情:完成cookie的增加、修改、删除、重加密


遇到的问题:暂无


今天的收获:了解了拦截器的作用


返回列表 返回列表
评论

    分享到