跳到主要内容

cookie的属性,怎么存储15.web安全,xss csrf原理以及防御手段?

一、Cookie 的属性

  1. namevalue:这是 Cookie 的基本组成部分,名称和对应的值。
  2. domain:指定 Cookie 所属的域名。只有在请求的域名与该属性匹配时,浏览器才会发送这个 Cookie。
  3. path:指定 Cookie 生效的路径。只有在请求的路径与该属性匹配时,浏览器才会发送这个 Cookie。
  4. expires/max-age:设置 Cookie 的过期时间。expires是一个具体的日期时间,而max-age是一个以秒为单位的时间值。
  5. secure:如果设置了这个属性,只有在使用 HTTPS 协议时,浏览器才会发送这个 Cookie。
  6. HttpOnly:如果设置了这个属性,JavaScript 脚本将无法访问这个 Cookie,有助于防止跨站脚本攻击(XSS)窃取 Cookie。

二、Web 安全之 XSS(跨站脚本攻击)原理及防御手段

  1. 原理:

    • 攻击者通过在目标网站注入恶意脚本,当用户访问被注入恶意脚本的页面时,浏览器会执行这些恶意脚本。
    • 恶意脚本可以窃取用户的敏感信息(如登录凭证、个人资料等)、篡改页面内容或者进行其他恶意操作。
  2. 防御手段:

    • 输入过滤:对用户输入的数据进行严格的过滤和验证,防止恶意脚本被注入。
    • 输出编码:在将用户输入的数据显示在页面上时,进行适当的编码,以防止浏览器将其解释为可执行的脚本。例如,对 HTML 特殊字符进行转义。
    • 设置 CSP(Content Security Policy,内容安全策略):通过设置 CSP 规则,限制页面可以加载的资源来源,防止恶意脚本的加载。

三、Web 安全之 CSRF(跨站请求伪造)原理及防御手段

  1. 原理:

    • 攻击者诱导用户在已登录的目标网站上执行一些恶意操作,这些操作通常是通过发送伪造的 HTTP 请求来完成的。
    • 由于用户在目标网站上已经登录,浏览器会自动携带用户的 Cookie 等认证信息,使得服务器误以为这些请求是用户自己发起的。
  2. 防御手段:

    • 验证请求来源:在服务器端验证请求的来源,确保请求来自合法的域名。可以通过检查Referer头或者设置自定义的请求头来实现。
    • 使用 CSRF token:在用户登录后,服务器生成一个随机的 CSRF token,并将其包含在表单或者其他需要用户提交的请求中。服务器在接收到请求时,验证 CSRF token 的有效性,以确保请求是由用户自己发起的。
    • 双重认证:除了传统的用户名和密码认证外,可以增加额外的认证方式,如短信验证码、指纹识别等,提高安全性。