zoukankan      html  css  js  c++  java
  • 简述Web的攻击技术

    对Web应用的攻击模式可分为主动攻击和被动攻击

    一、主动攻击

    主动攻击是指攻击者通过直接访问Web应用,把攻击代码传入的攻击模式
    具有代表性的是SQL注入攻击和OS命令注入攻击

    二、被动攻击

    被动攻击是指利用圈套策略执行攻击代码的攻击模式
    具有代表性的是跨站脚本攻击和跨站请求伪造。


    三、跨站脚本攻击(XSS)

    XSS的实质其实是HTML与Javascript代码的注入
    从攻击方式可分为持久型和非持久型
    1、持久型

    • 攻击者将恶意代码提交到目标服务器上
    • 客户端访问目标网站,服务器返回含有恶意脚本的页面
    • 客户端浏览器收到后解析页面,执行恶意脚本

    因为恶意代码存在于服务器上,所以任何访问该页面的用户都会受到攻击,是最危险的一种跨站脚本

    2、非持久型

    • 攻击者构造出包含恶意代码的特殊URL
    • 用户被诱导打开/点击URL
    • 恶意脚本被执行

    持久型与非持久型最大的区别在于恶意代码存放的位置不同
    前者的恶意代码存在于服务器中,而后者的恶意代码存在于URL或者页面的DOM结构中(直接在URL后面拼接script标签,或者利用一些DOM属性获取用户的输入/信息)

    四、XSS的危害

    • 窃取用户Cookie
    • 劫持用户会话,从而执行进一步操作(发送电子邮件、非法转账等)
    • 强制弹出广告页面
    • ......

    五、XSS的防御方法

    1、X-XSS-Protection

    X-XSS-Protection属于HTTP响应报文的首部字段
    当指定字段值为0时,禁止XSS过滤
    当指定字段值为1时,启用XSS过滤

    2、HttpOnly

    Set-cookie字段属于HTTP响应报文的首部字段
    当为此字段设置了 HttpOnly之后,无法使用Javascript的document.cookie来劫持Cookie

    3、过滤

    需要对用户的输入进行处理,只允许用户输入合法值

    4、转义

    对HTML的一些特殊字符进行转义,例如:将尖括号转义为 &lt 和&gt

    六、跨站请求伪造(CSRF)

    CSRF是指 攻击者利用 已通过认证的用户身份 进行恶意操作
    攻击步骤如下:
    1、用户注册/登录至网站A
    2、服务器验证通过后,在用户(浏览器)本地生成Cookie
    3、用户在未退出A的前提下,打开/访问危险网站B
    4、B在携带用户Cookie的情况下,对网站A发送恶意的GET或POST请求

    七、CSRF的防御方法

    1、验证Referer字段

    Referer字段是HTTP请求报文的一个首部字段,用于记录该HTTP请求的来源地址
    通常来说,Referer字段应和请求的地址位于同一域名下
    而如果是CSRF攻击传来的请求,Referer字段会是包含恶意网址的地址
    这种办法简单易行,工作量低,但是安全性不够高
    因为无法保证浏览器没有安全漏洞影响到此字段,也无法避免攻击者攻击浏览器、篡改Referer字段

    2、添加校验token

    在发出访问敏感数据的请求时,要求用户浏览器提供 不保存在Cookie中、且攻击者无法伪造的数据 作为校验
    这个数据通常是一个伪随机数

    3、验证码

    验证码强制用户与应用进行交互,才能完成最终请求
    而CSRF无法获取验证码,也就无法通过服务器的验证

  • 相关阅读:
    5.Java 线程状态之 TIMED_WAITING
    3.Java 线程状态之 BLOCKED
    4.Java 线程状态之 WAITING
    2.Java 线程状态之 RUNNABLE
    1.关于Java的线程状态
    js注入,canvas截图
    node使用3
    node使用2
    node的使用1
    学习进度报告
  • 原文地址:https://www.cnblogs.com/baebae996/p/13844642.html
Copyright © 2011-2022 走看看