zoukankan      html  css  js  c++  java
  • Cookie中的httponly的属性和作用

    1.什么是HttpOnly?

    如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。XSS全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。

    2.HttpOnly的设置样例


    response.setHeader("Set-Cookie", "cookiename=httponlyTest;Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");
     例如:
    //设置cookie

    response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly")


    //设置多个cookie

    response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");

    response.addHeader("Set-Cookie", "timeout=30; Path=/test; HttpOnly");


    //设置https的cookie

    response.addHeader("Set-Cookie", "uid=112; Path=/; Secure; HttpOnly");

    具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取。

    Cookie cookies[]=request.getCookies(); 

    XSS攻击是跨站脚本攻击,攻击用户的客户端,攻击者往web网页里面插入恶意的html代码,当用户浏览该html页面时,html页面里面的代码就会被执行,使用js脚本获取用户的cookie信息,获取到cookie信息上传至攻击者的服务器,攻击者获取cookie里面的信息,即被攻击。比如:邮箱中收到的链接等。

    测试方法:用户不随意点击不明确的链接;cookie加密处理(MD5加密等等),避免存放关键信息;使用HttpOnly=true

  • 相关阅读:
    Python连接MySQL数据库之pymysql模块使用
    线程
    进程
    网络编程
    面向对象进阶
    迭代器,生成器,装饰器
    函数的基础
    Andy's First Dictionary UVA
    Stripies POJ
    Soldier and Badges CodeForces
  • 原文地址:https://www.cnblogs.com/hpzyang/p/11783411.html
Copyright © 2011-2022 走看看