欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

js教程

自用的JavaScript过滤XSS攻击方法

js教程 我的站长站 2021-03-03 共104人阅读

什么是XSS攻击

XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击。本来缩小应该是CSS,但为了和层叠样式(CasCADing Style Sheet,CSS)有所区分,故称XSS。

对于攻击者来说,能够让受害者浏览器执行恶意代码的唯一方式,就是把代码注入到受害者从网站下载的网页中。

xss攻击的种类

1、持续型XSS攻击:恶意脚本来源于网站的数据库

我们来看这种攻击的一个场景

1、攻击者通过评论表单提交将<script>alert(‘aaa’)</script>提交到网站

2、网站后端对提交的评论数据不做任何操作,直接存储到数据库中

3、其他用户访问正常访问网站,并且需要请求网站的评论数据

4、网站后端会从数据库中取出数据,直接返回给用户

5、用户得到页面后,直接运行攻击者提交的代码<script>alert(‘aaa’)</script>,所有用户都会在网页中弹出aaa的弹窗

这种攻击方式恶意代码会被存储在数据库中,其他用户在正常访问的情况下,也有会被攻击,影响的范围比较大

2、反射型XSS攻击:恶意脚本来源于受害者的请求

在一个反射型XSS攻击中,恶意文本属于受害者发送给网站的请求中的一部分。随后网站又把恶意文本包含进用于响应用户的返回页面中,发还给用户。

我们来看下面这个场景

1、用户误点开了带攻击的url :http://xxx?keyword=<script>alert('aaa')</script>

2、网站给受害者的返回中包含了来自URL的的恶意文本

3、用户的浏览器收到文本后执行页面,会在网页中弹窗aaa

反射型的攻击需要用户主动的去访问带攻击的链接,攻击者可以通过邮件或者短信的形式,诱导受害者点开链接。如果攻击者配合短链接URL,攻击成功的概率会更高

3、基于DOM的XSS攻击

基于DOM的XSS攻击是反射型攻击的变种。服务器返回的页面是正常的,只是我们在页面执行js的过程中,会把攻击代码植入到页面中

JavaScript过滤XSS攻击方法

var filterXSS=function(oriStr){
if(!oriStr){
return oriStr;
}
var charCodes=['3c','3e','27','22','28','29','60',{format:'script{}',chr:'3a'}];//要转义字符的16进制ASCII码[1<  2>  3'  4"  5(  6)  7`]
var xssChars=[],filterChars=[],tmpFormat='{}',tmpChr;
for(var i=0;i<charCodes.length;i++){
if('string'==typeof charCodes[i]){
tmpFormat='{}';
tmpChr=charCodes[i];
}else{
tmpFormat=charCodes[i].format;
tmpChr=charCodes[i].chr
}
xssChars.push(tmpFormat.replace('{}','u00'+tmpChr));
xssChars.push(tmpFormat.replace('{}','%'+tmpChr));//1次encode
xssChars.push(tmpFormat.replace('{}','%25'+tmpChr));//2次encode
filterChars.push(tmpFormat.replace('{}','&#x'+tmpChr+';'));
filterChars.push(tmpFormat.replace('{}','%26%23x'+tmpChr+'%3B'));//1次encode
filterChars.push(tmpFormat.replace('{}','%2526%2523x' + tmpChr + '%253B'));//2次encode
}
for(var i=0;i<xssChars.length;i++){
oriStr=oriStr.replace(new RegExp(xssChars[i],'gi'),filterChars[i]);
}
//预防script:
oriStr=oriStr.replace(/script[u000du000au0020]+:/,'script:');
return oriStr;


相关专题
javascript
javascript
2022-09-12 12

学好javascript是开发必备基础知识,任何开发都离不开javascript.我的站长站为您整理javascript教程,javascript源码,更多javascript资源请访问我的站长站。...

相关推荐
  • 网站攻击
  • JS脚本
  • 短链接
  • 360出品的免费CDN服务 支持CDN+防D/C攻击+DNS
    360出品的免费CDN服务 支持CDN+防D/C攻击+DNS

    360出品的免费CDN服务,以前叫网站卫士,现在叫奇安信网站卫士,支持免费CDN加速服务、防DDOS、防CC攻击、智能高防DNS、支持HTTPS。使用方法我的站长站就不介绍了,都一样,解析域名等待审核,这里主要说说...

    主机域名 732 4年前
  • 《SQL注入攻击与防御》 pdf下载
    《SQL注入攻击与防御》 pdf下载

    当你在学注入的时候是不是很懵逼?不知道怎么找注入点,找到注入点不知道怎么注入,只会and 1=1 and 1=2,这本书全面讲解sql注入原理,以及各种注入类型和方法。SQL注入攻击是一种已经长期存在,但近年来日...

    电子书 129 4年前
  • 红色端Jscc攻击脚本DOSS压力测试PHP源码
    红色端Jscc攻击脚本DOSS压力测试PHP源码

    红色端+Jscc攻击脚本,服务器DOSS压力测试PHP源码,红色端搭建后需要自行修改后台路径。环境要求:php版本用56或者70及以上,安装扩展sg11组件。压力测试源码安装方法上传源码,解压源码,导入sql.sql文件@/...

    php源码 614 4年前
  • PHP防cc攻击网站源码
    PHP防cc攻击网站源码

    PHP防cc攻击网站源码仅支持php程序,类似于度云等的防CC访问机制。用户访问网站时先经过我们这个防CC页面,这样就可以拦截一般的CC攻击了。使用方法anti_ddos和css文件夹上传到网站根目录<?php requ...

    php源码 175 4年前
  • DDoS攻击防御方法实战
    DDoS攻击防御方法实战

    DDoS攻击是什么DDoS攻击防御截图DDoS攻击又称分布式拒绝服务攻击(DDoS攻击)是一种针对目标系统的恶意网络攻击行为,DDoS攻击经常会导致被攻击者的业务无法正常访问,也就是所谓的拒绝服务。常见的DDoS...

    服务器配置 224 4年前
  • 去除csdn必须登录复制代码限制JS脚本

    前言现在搜索IT相关的内容都是csdn的结果,下载要登录不说,复制代码也要登录,真是有点麻烦,分享一段去除csdn必须登录复制代码限制JS脚本,可以把页面模式变成可编辑即可随便复制了,附上代码javascript:document.body.contentEditable=&#39;true&#39;;docume...

    js教程 141 3年前
  • jQuery3.6.0更新说明

    即使存在JSONP错误也返回JSON在以前的版本中,当JSONP请求返回错误时,返回通常仍是一个可执行脚本。3.6.0版本已经更改了默认行为,以尝试在这种情况下执行脚本。当遇到错误时,正常的脚本仍将被跳过。修正一个值得强调的bug是关于将焦点重定向到焦点处理程...

    js教程 193 3年前
  • 自用的JavaScript过滤XSS攻击方法

    什么是XSS攻击XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击。本来缩小应该是CSS,但为了和层叠样式(Cascading Style Sheet,CSS)有所区分,故称XSS。对于攻击者来说,能够让受害者浏览器...

    js教程 104 3年前
  • jQuery淡入淡出效果语法教程

    实现前端特效的方法很多,最方便的还是css,当然有些特效还是使用JavaScript脚本比较简单,具体的还得看情况而定。jquery作为高度封装的JavaScript,它给我们提供了一些特效实现方式,我们一起来学习下吧。jQuery Fading 方法通过 jQuery,您可以实现元素的淡入...

    js教程 83 4年前
  • 京东盲盒自动做任务JS脚本
    京东盲盒自动做任务JS脚本

    京东盲盒自动做任务JS脚本,推荐使用:360极速浏览器或者QQ浏览器,调成极速模式 大概能抽到200~500左右个京豆,活动时间内每天都可以,输入代码后自动完成任务和抽奖,大概几分钟搞定!教程步骤如下:1、电脑浏...

    js教程 561 4年前
  • Sir在线短链接生成源码下载
    Sir在线短链接生成源码下载

    源码介绍Sir在线短链接生成源码,调用的第三方API接口,支持在线生成短链接。自带云端接口(云端拥有20多种接口,目前云端接口大多数免费使用)。API使用方法:域名/api.php?type=云端接口识别码&url=缩短...

    php源码 62 2年前
  • PHP腾讯短网址生成api接口实例

    腾讯短网址api接口说明PHP腾讯短网址生成api接口实例,url.cn短链接生成api接口是腾讯官方对外公开的短网址生成接口,可以将一个冗长的链接缩短成10个字符以内的短链接。短网址可以降低推广成本、用户记忆成本,提高用户点击率;在特定的场景下推广还能规避...

    php教程 188 3年前
  • 自用的JavaScript过滤XSS攻击方法

    什么是XSS攻击XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击。本来缩小应该是CSS,但为了和层叠样式(Cascading Style Sheet,CSS)有所区分,故称XSS。对于攻击者来说,能够让受害者浏览器...

    js教程 104 3年前
  • python写的淘了个宝抢购小帮手

    使用方法1、运行此软件,复制链接到淘宝搜索框内搜索登录;2、手机淘宝分享需要抢购的链接;3、填入收获地址的行政区划代码,要抢购的商品SKUID,开始抢购的时间(13位时间戳);python代码import requests, re, time,execjs,randomimport urllib.parsefrom...

    python教程 117 2年前
  • Wordpress大前端DUX6.4主题模板下载
    Wordpress大前端DUX6.4主题模板下载

    Wordpress大前端DUX6.4主题模板下载,自适应手机、平板多终端。更新内容1、新增百度收录功能,可选快速收录,默认普通收录2、(主题设置-百度收录)新增搜索关键词只匹配文章标题的选项(主题设置-基本)3、新...

    wordpress模板 304 4年前