【网安自学】XSS漏洞防御

2023-10-27

一.XSS漏洞的产生很大原因是:程序没有经过过滤或者过滤的敏感字符不严密就直接输出或写入数据库,导致一些别有用心的人通过构造巧妙的脚本恶意代码来实施攻击。

二.根据漏洞产生的原因,防御XSS漏洞的方法就是对敏感字符进行转义和过滤

方法一:htmlspecialchars函数

格式:string htmlspecialchars(string $string, int $quote_style, string $charset);

三个参数的意义:

$string                

转换对象字符串

$quote_style       

转换方法(ENT_NOQUOTES,ENT_COMPAT,ENT_QUOTES) 

$charset              

字符编码。例如:UTF-8、GBK

三种转换方法:

ENT_COMPAT

 默认。仅编码双引号。

ENT_QUOTES

 编码双引号和单引号。

ENT_NOQUOTES

 不编码任何引号。

实例一:没有任何基本防御

进行防御:

将注入的代码进行了转义,使其失去了效果

实例二:对<script>和</script>进行了过滤,没什么用,大小写组合直接绕过

进行防御:

实例三:对大小写都进行了过滤,并没有什么用,可以通过<img src=1 οnerrοr=alert("xss")>绕过

进行防御

实例四:使用img就可以绕过

进行防御:

实例五:可以使用confirm,prompt标签进行弹窗

进行防御:

实例六:可以使用a"; alert($a);$a="绕过

进行防御:

实例七:和实例六差不多,有htmlentities进行转义,但是却没有对 '(单引号进行转义)

构造payload:a';alert($a);$a='  可以绕过

进行防御:

实例八:

进行防御

/"οnsubmit=javascript:alert(1)%20name="

防御cookie泄露(开启Http-only)

1.对于session

(未开启)---->(开启):ini_set("session.cookie_httponly",1);

2.对于cookie,把setcookie的第七个参数设置为true

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【网安自学】XSS漏洞防御 的相关文章

随机推荐

  • 高版本IAR打开低版本编译的程序出现的问题

    山外KEA程序一打开就出现这个 The project file vcan Kinetis ewp is in an old format Would you like to convert it for use with this ver
  • keil MDK之RTX的消息邮箱的API函数

    一 RTX消息邮箱的API函数 RTX消息邮箱的API函数总共有8个 如下图 下面就将几个这里要用到的函数 1 os mbx declare函数原型 define os mbx declare name Name of the mailbo
  • 深度可分离卷积及其代码实现

    深度可分离卷积 depthwise separable conv 一共两步 第一步先进行逐通道卷积 Depthwise Convolution 第二步进行 逐点卷积 Pointwise Convolution 普通卷积 输入是三个通道 输出
  • acrobat页面显示问题

    最近对着电脑的时间比以前多太多了 每天都用Acrobat看pdf 千万别告诉我你用Adobe Reader 为了保护眼睛 需要更改下页面显示 一 背景颜色 经常对着电脑看文档的人 需要修改下背景颜色 通常默认的背景色都是白色的 阅读时间短倒
  • 【Nginx】常用配置

    一 问题 1 1 环境 电脑环境 Windows 10 开发工具 IntelliJ IDEA 数据库环境 Redis 3 2 100 JDK环境 Jdk1 8 1 2 问题 Nginx 基本配置是什么 二 解答 1 配置 2 检测 3 启动
  • 毕业设计题目

    旅游社交系统 基于Web的学校教室租赁系统 学校在线二手交易平台 基于移动平台的轻博客系统开发 基于web的IT技术论坛 基于Java EE新闻管理系统的设计与实现 网上员工考试培训系统 基于JAVA JSP SSH WEB的简单邮件系统设
  • C++数组

    数组是有序的元素序列 长像 int a 5 1 2 3 4 5 数组名单独使用 等同于指向数组内存首地址的指针 也就是数组名可以当指针使用 Over
  • DedeCMS内容页受统计影响打开速度慢的解决方法

    织梦DedeCMS网站被挂马后解决方案 DedeCMS内容页受统计影响打开速度慢的解决方法 Dedecms文章内容页受统计影响打开速度较慢的解决方法 dedecms文章内容页加载统计的时候会有卡住停顿 如果网速慢干脆就停止下边网页的加载 D
  • [转]基于NXP i.MX8QM的QNX之汽车数位仪表板方案

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 email 174176320 qq com 基于NXP i MX
  • Unity——IK动画契合匹配初体验

    学到siki学院的动画系统那一章节的IK动画Siki 顺便作点笔记 1 什么是IK IK Inverse Kinematics 即反向动力学 即可以使用场景中的各种物体来控制和影响角色身体部位的运动 一般来说骨骼动画都是传统的从父节点到子节
  • 夜神模拟器如何进入adb

    夜神模拟器如何进入adb 进入夜神模拟器得安装路径 我这里是这个路径 D moniqi Nox bin 然后打开cmd 执行adb connect 127 0 0 1 62001 然后再执行命令adb devices 显示这个内容就说明连接
  • java基础 —— 高级编程篇

    java基础 高级编程篇 多线程 基本概念 线程的创建和使用 Thread类 创建 多 线程 线程的调度 线程的分类 线程的生命周期 线程同步 同步机制 死锁 死锁处理方法 线程通信 生产者 消费者问题 java常用类 String类 St
  • ROS navigation调试基础(实现真实机器人导航)

    最近使用了一下ROS中非常经典的导航包navigation 并通过自己的激光雷达以及相机里程计驱动了自己的小车在室内进行简单的定位以及导航 在此记录一下以免后期忘记 1 导航包安装 ROS中navigation导航包可以通过GitHub上下
  • Nacos控制台下线服务报错

    Nacos控制台下线服务报错 现象 在 Nacos控制台服务列表 点击下线按钮 Nacos控制台报错 提示错误信息 naming instance metadata did not find the Leader node 原因 Nacos
  • maven项目编译时报错org.junit包不存在解决办法

    在用idea快速搭建项目的时候 生成的pom xml文件里面对junit的依赖是 junit junit 4 11 test 在进行编译的时候 maven项目报错org junit包不存在 解决方法是将 test 这一行注释掉 测试用例记得
  • LLVM是什么

    有什么说的不对的地方 还请多多支出 谢谢 概述 LLVM 全称是这个Low Level Virtual Machine 底层虚拟机 名字是带有虚拟机 但是现在早已和虚拟机没有任何关系了 是整个LLVM项目 我目前了解的有5部分 LLVM 是
  • Echarts实现图形重新绘制方法总结

    1 业务需求 vue项目使用Echarts进行数据看板绘制 当数据发生改变时 需要重新进行图形绘制 2 解决方案 目前网上流传的方法 myChart setOption option true 亲测无效 因此重找了资料找到了解决方法 Ech
  • Windows系统下安装Metasploit

    Windows系统下安装Metasploit metasploit介绍 metasploit是一款开源的安全漏洞检测工具 里面含有海量的漏洞供大家直接使用 当然 你也可以自己去扩展漏洞库 下载软件包 下载地址 https windows m
  • 原生js写画布

    html部分
  • 【网安自学】XSS漏洞防御

    一 XSS漏洞的产生很大原因是 程序没有经过过滤或者过滤的敏感字符不严密就直接输出或写入数据库 导致一些别有用心的人通过构造巧妙的脚本恶意代码来实施攻击 二 根据漏洞产生的原因 防御XSS漏洞的方法就是对敏感字符进行转义和过滤 方法一 ht