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

js教程

自用的JavaScript过滤XSS攻击方法

js教程 精准像素 2021-03-03 共34人阅读

什么是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;


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

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

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

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

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

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

    php源码 362 1年前
  • PHP防cc攻击网站源码
    PHP防cc攻击网站源码

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

    php源码 96 1年前
  • DDoS攻击防御方法实战
    DDoS攻击防御方法实战

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

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

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

    js教程 8 2个月前
  • jQuery3.6.0更新说明

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

    js教程 65 8个月前
  • 自用的JavaScript过滤XSS攻击方法

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

    js教程 34 8个月前
  • jQuery淡入淡出效果语法教程

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

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

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

    js教程 280 1年前