web安全之XSS攻击

XSS攻击及防范

1. 什么是XSS?

CSRF(Cross-site request forgery),中文名称:跨站请求伪造。 将恶意代码植入到提供给其他用户使用的页面中,简单的理解为一种javascript代码注入。

2. XSS危害

  • 挂马
  • 盗取用户Cookie。
  • DOS(拒绝服务)客户端浏览器。
  • 钓鱼攻击,高级的钓鱼技巧。
  • 删除目标文章、恶意篡改数据、嫁祸。
  • 劫持用户Web行为,甚至进一步渗透内网。
  • 爆发Web2.0蠕虫。
  • 蠕虫式的DDoS攻击。
  • 蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据

3.XSS分类

XSS分为三类:

  • 反射型XSS(非持久型)
    • 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。
  • 存储型XSS(持久型)
    • 存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。
  • DOM XSS(客户端)
    • DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。

4.XSS的防御措施:

  • 过滤转义输入输出
  • 避免使用eval、new Function等执行字符串的方法,除非确定字符串和用户输入无关
  • 使用cookie的httpOnly属性,加上了这个属性的cookie字段,js是无法进行读写的
  • 使用innerHTML、document.write的时候,如果数据是用户输入的,那么需要对象关键字符进行过滤与转义

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

如何在安卓移动终端进行一次渗透实验?

下面的实验将通过使用一个虚拟Android系统作为实验主体来进行展示。在这个实验中,通过使用虚拟Android系统,模拟移动终端的操作,来帮助我们逐步实现使用一...

2256
来自专栏yl 成长笔记

消息队列的使用 RabbitMQ(一): 安装与总体介绍

RabbitMQ 是一款开源且比较流行的消息中间件。但用起来还是比较麻烦,有人封装了一层, 这就是 EasyNetQ 。

712
来自专栏菜鸟程序员

支持批量检测 SS/SSR账号延迟和TCP/UDP可用性的客户端 —— SSCap

2.1K3
来自专栏陈树义

高效开发技巧:为什么你下载Git项目这么慢?

笔者所在公司采用的是 GitLab 进行版本管理,但许多同事下载 Git 项目的路径是这样的: 打开浏览器 -> 输入网址 -> 查找项目地址 -> 复制项目...

3464
来自专栏小白安全

端口转发----lcx.exe

什么情况下需要端口转发: Web服务器在内网中,远程桌面无法连接,因此需要进行端口转发。 内网IP的80端口通过端口映射到外网IP的80端口上, ...

3539
来自专栏CaiRui

linux+Nginx+Mysql+Php

LNMP简介 LAMP(Linux apache mysql php)---比较早的web服务。 LNMP(Linux nginx mysql php)---比...

2309
来自专栏calvin

在Jenkins中使用sonar进行静态代码检查

懒得说,跟着官方文档走就行,这边主要的开发语言是.net core 和 typescript,所以在sonar server中的应用市场搜索对应语言安装就完事 ...

1022
来自专栏静下来

php提示Notice:undefined index的解决方法

今天一个朋友的网站被他的服务商关站了,说是网站每天报错日志能有30M。想想一个文本,就一些提示就能有30M的大小,那错误是蛮多的了。 因为他用的虚拟空间,他这个...

3825
来自专栏啸天"s blog

amh4.2优化版

1414
来自专栏WindCoder

Windows 7下硬盘安装Ubuntu 13.10图文教程

之前一直在虚拟机里玩Linux了,昨天忽然兴起想往真机里装一个,昨天找到的方法,今天折腾了半天终于装好啦。

991

扫码关注云+社区