3-Web安全——报错注入

目录

1. extractvalue报错注入

2. updatexml报错注入

3. floor报错注入


 

当网站的页面上没有显示位用于展示SQL语句执行后的结果,但是sql语句执行可以输出错误信息,那么攻击者可以利用注入过程中返回的错误信息进行判断。

 

报错注入就是客户端可以构造SQL语句,让错误信息中可以显示数据库内容的查询语句,当数据库执行SQL语句返回报错提示中包含数据库的内容。

3-Web安全——报错注入_第1张图片

 

来看报错注入的一个简单案例:

3-Web安全——报错注入_第2张图片

在构造的SQL语句中,故意把database()函数写错成datadase()了,返回的错误信息提示是security数据库不存在datadase函数,换句话说,数据库给出的错误信息中直接暴露了查询的数据库信息:security。

 

 

报错注入的类型有12种,这里只介绍三种:extractvalue报错注入,updatexml报错注入,floor报错注入。MySQL5.0以上版本中添加了对XML文档进行查询和修改的两个函数:extractvalue和updatexml。

 

1. extractvalue报错注入

extractvalue(参数1 , 参数2):Mysql数据库中的extractvalue函数是用于对XML文档进行查询的函数。

参数1表示操作的目标XML文档,参数2则表示目标XML的查找路径。

 

通过extractvalue报错注入,创建数据库ctfstu数据表xml,插入两条数据为例:

#创建数据库表xml
create table xml(doc varchar(150));

#插入数据1
insert into xml values('

how to become a bad boy<title>
<author>
<initial>howlong</initial>
<surname>Allen</surname>
</author>
</book>
');

#插入数据2
insert into xml values('
<book>
<title>A bad boy how to get a girlfriend<title>
<author>
<initial>Love</initial>
<surname>Mike</surname>
</author>
</book>
');</code></pre> 
  <p style="margin-left:0pt;"> </p> 
  <p style="margin-left:0pt;"> </p> 
  <p style="margin-left:0pt;">使用extractvalue函数查询数据库表xml的作者,构造的sql语句如下:</p> 
  <pre><code class="language-sql">select extractvalue(doc,'/book/author/surname')from xml;</code></pre> 
  <p style="margin-left:0pt;"> </p> 
  <p style="margin-left:0pt;">SQL语句执行结果:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/af9bb228a09448eda8262f1d3fd32ed2.jpg" target="_blank"><img alt="3-Web安全——报错注入_第3张图片" height="144" src="http://img.e-com-net.com/image/info8/af9bb228a09448eda8262f1d3fd32ed2.jpg" width="518" style="border:1px solid black;"></a></p> 
  <p> </p> 
  <p> </p> 
  <p style="text-indent:33px;">通过extractvalue函数注入报错我们可以把查询参数格式符号写错,例如select extractvalue(doc , '~book/titleaaa') from xml这样的格式,mysql数据库在执行过程中会直接报错:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/1a15a64af1674559a47f5aa89dcb737f.jpg" target="_blank"><img alt="" height="56" src="http://img.e-com-net.com/image/info8/1a15a64af1674559a47f5aa89dcb737f.jpg" width="507"></a></p> 
  <p> </p> 
  <p> </p> 
  <p> </p> 
  <p style="text-indent:33px;">0x7e是“~”符号的十六进制表现形式,而concat函数的作用就是将“~”符号与select database()查询的结果进行拼接成字符串,从而使extractvalue函数报错:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/99743730afcd4c24a0586250061292ec.jpg" target="_blank"><img alt="3-Web安全——报错注入_第4张图片" height="124" src="http://img.e-com-net.com/image/info8/99743730afcd4c24a0586250061292ec.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">从数据库返回的报错信息来看,页面显示了数据库名字。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">然后我们再讲上面的SQL语句进行改造,将select database()部分更改成如下:</p> 
  <pre><code class="language-sql"># 这条SQL语句表示查询当前数据库security下的所有数据库表
select group_concat(table_name) from information_schema.tables where table_schema=database()</code></pre> 
  <p style="text-indent:33px;"> </p> 
  <p style="margin-left:0pt;">SQL语句执行结果如下:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/dfa75627cc8d41e0b78242f7383e1a0f.jpg" target="_blank"><img alt="3-Web安全——报错注入_第5张图片" src="http://img.e-com-net.com/image/info8/dfa75627cc8d41e0b78242f7383e1a0f.jpg" width="650" height="145" style="border:1px solid black;"></a></p> 
  <p style="margin-left:0pt;"> </p> 
  <p style="text-indent:33px;">直接爆出了当前数据库下所有的数据库表。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p> </p> 
  <h3 id="2.%20updatexml%E6%8A%A5%E9%94%99%E6%B3%A8%E5%85%A5">2. updatexml报错注入</h3> 
  <pre><code class="language-sql">updatexml(XML_document , XPath_string , new_value)</code></pre> 
  <p> </p> 
  <p style="text-indent:33px;">updatexml函数有三个参数,XML_document参数表示目标XML文档(例如doc), XPath_string参数表示路径,new_value替换查找的数据。updatexml函数报错注入的原理和extractvalue函数是相通的。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">确定当前网站是字符串注入类型,且闭合方式为")(双引号加括号)的方式:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/72a957717f1542bcb1a1e7c11f9e0177.jpg" target="_blank"><img alt="3-Web安全——报错注入_第6张图片" src="http://img.e-com-net.com/image/info8/72a957717f1542bcb1a1e7c11f9e0177.jpg" width="650" height="166" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">接下来通过updatexml函数进行报错注入,使用concat函数对查询的目标与0x7e进行拼接,从而导致updatexml报错,那么构造sql语句如下:</p> 
  <pre><code class="language-sql">?id=1") and 1=updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),3) --+</code></pre> 
  <p> </p> 
  <p> </p> 
  <p style="text-indent:33px;">数据库执行SQL语句返回的结果:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/889134dd74484e088430f3d420282be8.jpg" target="_blank"><img alt="3-Web安全——报错注入_第7张图片" src="http://img.e-com-net.com/image/info8/889134dd74484e088430f3d420282be8.jpg" width="650" height="161" style="border:1px solid black;"></a></p> 
  <p style="margin-left:0pt;"> </p> 
  <p style="text-indent:33px;">获取用户名和密码,构造sql语句:</p> 
  <pre><code class="language-sql">?id=1") and 1=updatexml(1,concat(0x7e,(select substring(group_concat(username,':',password),1,30) from users)),3) --+</code></pre> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/0c010ae588a5417e9b7aa68d0fd7e2c9.jpg" target="_blank"><img alt="3-Web安全——报错注入_第8张图片" src="http://img.e-com-net.com/image/info8/0c010ae588a5417e9b7aa68d0fd7e2c9.jpg" width="650" height="156" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">页面的显示位置每次只能显示32个字符,无法完全显示全部,可以通过substring函数把之后所有的内容显示出来,例如substring(str,1,30)表示从第1个字符显示30个字符。</p> 
  <p> </p> 
  <p> </p> 
  <h3 id="3.%20floor%E6%8A%A5%E9%94%99%E6%B3%A8%E5%85%A5">3. floor报错注入</h3> 
  <p style="margin-left:0pt;"> </p> 
  <p style="margin-left:0pt;">floor报错注入跟前面两个函数有所不同,floor函数抱错注入的原理涉及到以下几个函数:</p> 
  <ol> 
   <li>rand():随机返回0 ~ 1之间的小数</li> 
   <li>floor():小数向下取整数(向上取整数是ceiling()函数)</li> 
   <li>concat_ws():将括号内的数据用第一个字段连接起来</li> 
   <li>group by子句:分组语句,常用于结合统计函数,根据一个列或多个列,对结果集进行分组</li> 
   <li>as:就是别名</li> 
   <li>count函数:汇总统计数量</li> 
   <li>limit:显示指定行数</li> 
  </ol> 
  <p> </p> 
  <p> </p> 
  <p style="margin-left:0pt;">rand函数用法:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/a253a704f4504495b9b9d421c27df2cf.png" target="_blank"><img alt="3-Web安全——报错注入_第9张图片" src="http://img.e-com-net.com/image/info8/a253a704f4504495b9b9d421c27df2cf.png" width="705" height="716" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">直接执行select rand()语句发现,数据库每次都会随机返回0 ~ 1之间的小数,但是执行select rand()*2时,数据库则可能会返回大于1的小数,因为*符号在数学里是一个乘号。对于select rand() from users;语句来说,数据库在执行该语句查询数据库时,rand()函数会计算出users表的行数,users表每有一行数据rand()函数就会计算一次,上图中rand()函数计算了13次,说明users表中有13行数据,换句话说,users表中有多少行数据,rand函数就会执行次。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">floor函数用法:小数向下取整数</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/9b648953779c4aeaa5d38ec88ce0d353.png" target="_blank"><img alt="3-Web安全——报错注入_第10张图片" src="http://img.e-com-net.com/image/info8/9b648953779c4aeaa5d38ec88ce0d353.png" width="388" height="343" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">floor函数很好理解,如果rand函数返回的结果是小于1的小数的话,例如select floor(rand())函数返回的小数是0.5694725639833813,那么floor函数则会向下取整数,就变成了0。如果select floor(rand()*2)函数返回的小数是1.7217163776249778,那么floor函数向下取整,得到的结果就是1,这就是floor函数的作用。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">concat_ws函数用法:将括号内数据用第一个字段连接起来。</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/e3cdcef0b9fc4c2a986a8e89b6be45cc.png" target="_blank"><img alt="3-Web安全——报错注入_第11张图片" src="http://img.e-com-net.com/image/info8/e3cdcef0b9fc4c2a986a8e89b6be45cc.png" width="768" height="572" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">可以看到concat_ws函数内有三个参数,第一个是“-”符号,第二个是select database(),当前数据库是security;第三个参数则是floor(rand()*2),结果为0或1。执行上面的语句后,concat_ws函数会将括号内的数据用第一个参数连接起来,最后返回的结果是security-1或者security-0。</p> 
  <p style="margin-left:0pt;"> </p> 
  <p style="margin-left:0pt;"> </p> 
  <p style="text-indent:33px;">group by子句用法:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/a52a82fea3bd486bb4fa620b0a4c37d5.jpg" target="_blank"><img alt="3-Web安全——报错注入_第12张图片" src="http://img.e-com-net.com/image/info8/a52a82fea3bd486bb4fa620b0a4c37d5.jpg" width="650" height="419" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">前面已经介绍过了,group by子句是用于对结果集进行分组的,as关键字对结果集进行起别名,然后使用group by子句对结果集进行分组,从之前查询的结果来看,无非就是security-0和security-1两种结果。</p> 
  <p style="text-indent:33px;">对于count函数和limit函数,之前的学习中已经介绍过了,这里不再赘述。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">使用count函数对结果集进行统计:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/b56a6d57ba564bc296a0babe29e1b2e4.png" target="_blank"><img alt="3-Web安全——报错注入_第13张图片" height="158" src="http://img.e-com-net.com/image/info8/b56a6d57ba564bc296a0babe29e1b2e4.png" width="1023" style="border:1px solid black;"></a></p> 
  <p style="margin-left:0pt;"> </p> 
  <p style="text-indent:33px;">count函数统计的结果中security-0出现了8次,security-1出现了5次。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">floor报错注入的原理主要有两点:<strong><span style="color:#0000ff;"><strong>报错语句和报错位置</strong></span></strong>。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">示例:</p> 
  <pre><code class="language-sql">select count(*),concat_ws('-',(select database()),floor(rand(0)*2)) as a from users group by a;</code></pre> 
  <p style="text-indent:33px;">执行SQL报错信息:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/9bd73158de594ebe8f3df43d3f0db6ff.png" target="_blank"><img alt="3-Web安全——报错注入_第14张图片" height="185" src="http://img.e-com-net.com/image/info8/9bd73158de594ebe8f3df43d3f0db6ff.png" width="856" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">前面我们说过SQL语句报错主要有两点一个是报错语句和报错位置,这条SQL语句每次执行时都会报错,报错的原因在于SQL语句中count(*),rand(0),group by这些语句的组合引起的。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">单独的去掉组合中的一个,都不会引起报错,真正的原因在于rand函数进行分组group by和统计count()时可能会多次执行,导致键值key重复:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/f02fe129afa74b81b3cfd6bb1d2970b6.png" target="_blank"><img alt="3-Web安全——报错注入_第15张图片" src="http://img.e-com-net.com/image/info8/f02fe129afa74b81b3cfd6bb1d2970b6.png" width="680" height="671" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">以rand(0)为例,在多次执行过程中会出现键值key重复,当我们在构造SQL语句时使用count(*),rand(0),group by这些语句的组合时,rand(0)和rand(4)会引起数据库的报错,因此rand函数中的参数除了0或4,可以是任意其他数字。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">分析SQL语句:select count(*),concat_ws('-',(select database()),floor(rand(0)*2)) as a from users group by a;</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/7aa99a6da29740209988261afc14263e.jpg" target="_blank"><img alt="3-Web安全——报错注入_第16张图片" src="http://img.e-com-net.com/image/info8/7aa99a6da29740209988261afc14263e.jpg" width="650" height="201" style="border:1px solid black;"></a></p> 
  <p style="text-indent:0;">分析SQL语句执行过程:</p> 
  <p style="text-indent:33px;">第一次统计时,rand函数进行第一次计算,concat_ws函数得到的结果是security-0,然后count函数对concat_ws的结果进行统计发现,security-0在group_key中的键值不存在,于是concat_ws函数重新计算结果为security-1,然后把该key值存入到group_key中。</p> 
  <p style="text-indent:33px;">第二次以此类推,进行到第三次统计的时候,已经是第四次计算了,concat_ws函数得到的结果是security-0(正常来说,第三次统计,concat_ws函数得到的结果应该是security-1才对),发现security-0在group_key中并不存在,concat_ws函数会进行重新计算,将得到的结果security-1放入到group_key中,但问题在于:security-1的key值在group_key中已经存在,数据库在执行过程中就会报错(ERROR 1062 (23000): Duplicate entry 'security-1' for key 'group_key')。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/a18af341ae2c4209b1dd19e22007084a.jpg" target="_blank"><img alt="3-Web安全——报错注入_第17张图片" src="http://img.e-com-net.com/image/info8/a18af341ae2c4209b1dd19e22007084a.jpg" width="650" height="221" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;">当users表中的数据不足5条,再次执行SQL语句数据库并不会返回错误。换句话说,rand函数只要执行次数不超过5次,那么数据库在执行过程中就不会报错。</p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;"><span style="color:#0000ff;">但是在真正的SQL注入环境中,数据库表中的数据有可能会不够,一般情况下会使用数据库默认的information_schema.tables表。</span></p> 
  <p style="text-indent:33px;"> </p> 
  <p style="text-indent:33px;">例如查询当前security数据库下的所有表和表的所有字段,构造SQL语句:</p> 
  <pre><code class="language-sql">#查询当前security数据库下的所有表
select group_concat(table_name) from information_schema.tables where table_schema=database();

#查询users表的所有字段
select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users';


#查询users表的所有数据
select group_concat(username,'@','password') from users;</code></pre> 
  <p style="text-indent:33px;"> </p> 
  <p style="margin-left:0pt;">获取users表的所有字段,测试结果如下:</p> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/4924c869323449ff87dcb77b2940f9f6.jpg" target="_blank"><img alt="3-Web安全——报错注入_第18张图片" src="http://img.e-com-net.com/image/info8/4924c869323449ff87dcb77b2940f9f6.jpg" width="650" height="108" style="border:1px solid black;"></a></p> 
  <p style="text-indent:33px;"> </p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1287612056576503808"></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">你可能感兴趣的:(网络安全)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950150865553780736.htm"
                           title="【数据分析】抓包工具的定义常见类型分类使用场景及注意事项" target="_blank">【数据分析】抓包工具的定义常见类型分类使用场景及注意事项</a>
                        <span class="text-muted"></span>

                        <div>抓包工具的定义常见类型分类使用场景及注意事项-CSDN直播抓包工具的定义常见类型分类使用场景及注意事项抓包工具的定义常见类型分类使用场景及注意事项抓包工具概述抓包工具顾名思义是一种用于捕获并分析网络数据包的软件或硬件工具它能够在数据传输过程中截取并记录网络流量让用户能够深入理解并排查网络问题这类工具的用途广泛从网络安全测试到应用程序调试都离不开抓包工具的帮助在众多的抓包工具中WiresharkFi</div>
                    </li>
                    <li><a href="/article/1950132204336115712.htm"
                           title="《跨域资源共享CORS的深层逻辑与前端实践精要》" target="_blank">《跨域资源共享CORS的深层逻辑与前端实践精要》</a>
                        <span class="text-muted"></span>

                        <div>不同源头的资源交互已成为常态,而跨域资源共享(CORS)正是支撑这种交互的隐形架构。现代Web安全体系中平衡开放与防护的精妙设计。理解CORS的深层逻辑,不仅能解决实际开发中的跨域难题,更能触及网络安全与资源流通的核心矛盾,为前端工程师构建稳健的应用提供底层认知支撑。跨域资源共享的诞生,源于网络安全与应用发展的必然冲突。浏览器的同源策略,作为早期网络安全的基石,通过限制不同源文档的交互,有效阻挡了</div>
                    </li>
                    <li><a href="/article/1950102709000531968.htm"
                           title="中国顶级黑客名单" target="_blank">中国顶级黑客名单</a>
                        <span class="text-muted">2501_92914741</span>
<a class="tag" taget="_blank" href="/search/facebook/1.htm">facebook</a><a class="tag" taget="_blank" href="/search/twitter/1.htm">twitter</a><a class="tag" taget="_blank" href="/search/paddle/1.htm">paddle</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0/1.htm">微信开放平台</a>
                        <div>网名:KING真实名字:谭绪武OICQ:1576172简介:原中国黑客联盟站长,2001年中]=美黑客大战领军人物之一,中国第1代黑客之一,中国最早期黑客组织中国黑客联盟的创始人,中国黑客界泰斗级元老,中国传奇黑客。网名:sunx真实姓名:孙华OICQ:239670简介:资深网络安全专家、软件设计师、Unix专家,在黑客、病毒等技术上均具有顶尖级水平,对系统内核研究有很高的造诣,程序反编译、跟踪、</div>
                    </li>
                    <li><a href="/article/1950102076155555840.htm"
                           title="Centos7防火墙" target="_blank">Centos7防火墙</a>
                        <span class="text-muted">会飞的灰大狼</span>
<a class="tag" taget="_blank" href="/search/Centos7/1.htm">Centos7</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>Centos7防火墙前言:本来想在系统那里去说防火墙但防火墙要说的要很多使用单独做一章文章去讲防火墙~~‍在CentOS7中,防火墙是保障系统网络安全的核心组件,默认采用firewalld作为防火墙管理工具(替代了CentOS6的iptables服务),底层仍基于iptables内核模块实现规则控制。‍iptablesiptables命令的完整格式较为复杂,其核心结构由命令选项、表(table)、</div>
                    </li>
                    <li><a href="/article/1950051903681392640.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/%E6%94%BB%E5%87%BB%E9%9D%A2%E5%87%8F%E5%B0%91/1.htm">攻击面减少</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%9E%B6%E6%9E%84/1.htm">网络架构</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%8B%93%E6%89%91/1.htm">网络拓扑</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8C%85%E8%BD%AC%E5%8F%91/1.htm">数据包转发</a>
                        <div>背景简介网络安全是当前信息时代的核心挑战之一,随着网络技术的快速发展,攻击手段也日益多样化。本篇博客文章基于提供的书籍章节内容,深入分析网络安全中的攻击面减少策略、网络架构的设计与管理,以及不同网络拓扑的特点,旨在为读者提供一个全面的网络安全知识框架。攻击面减少攻击面是指一个系统或软件暴露给潜在攻击者的全部潜在入口点。减少攻击面是提高网络安全的有效手段之一。通过减少运行的代码量、限制未受信任用户的</div>
                    </li>
                    <li><a href="/article/1950042324155297792.htm"
                           title="网络安全第14集" target="_blank">网络安全第14集</a>
                        <span class="text-muted">不灭锦鲤</span>
<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>前言:小迪安全14集,这集重点内容:0、什么是js渗透测试?在javascript中也存在变量和函数,存在可控变量和函数就有可能存在在漏洞,js开发的web应用和php、java开发的区别是,js能看得到的源代码,php看不到,但是风险就是未授权访问、配置信息泄露(加密算法、key秘钥等),源代码看得到,存在更多的url泄露,从而可能会出现未授权访问,从url,前提:web应用可以采用前端语言或后</div>
                    </li>
                    <li><a href="/article/1950039800253837312.htm"
                           title="与网络安全相比,为什么只会Python很难找到工作?" target="_blank">与网络安全相比,为什么只会Python很难找到工作?</a>
                        <span class="text-muted">程序员羊羊</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E5%AE%89%E5%B7%A5%E7%A8%8B%E5%B8%88/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><a class="tag" taget="_blank" href="/search/%E9%BB%91%E5%AE%A2/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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%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/%E7%BD%91%E7%BB%9C/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><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>前言作为一门广泛应用的编程语言,Python在众多领域中都有着不可忽视的地位。然而,对于那些寻求就业的程序员来说,仅仅掌握Python可能并不足以让他们轻松地找到一份理想的工作。本文将深入探讨为什么只会Python很难找到工作,以及分析在职程序员在Python岗位上可能会遇到的一些情况。一、Python的优势与局限性Python的优势Python作为一种高级编程语言,具有简洁、易读、易于学习等特点</div>
                    </li>
                    <li><a href="/article/1950025425208012800.htm"
                           title="网络安全三要素" target="_blank">网络安全三要素</a>
                        <span class="text-muted">岁月静好2025</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>网络安全三要素1.保密性信息的保密性(Confidentiality)是网络安全的核心概念之一,它指的是确保信息只能被授权的用户访问,防止数据泄露给未授权的个人、系统或过程2。1.1保密性的核心含义限制访问:只有经过授权的用户才能查看或使用敏感信息。防止泄露:避免信息在传输、存储或处理过程中被窃取或监听。保护隐私:确保个人、企业或国家的隐私数据不被非法获取。1.3实现保密性的常见技术技术手段作用说</div>
                    </li>
                    <li><a href="/article/1949958843928735744.htm"
                           title="运维-资产梳理" target="_blank">运维-资产梳理</a>
                        <span class="text-muted"></span>

                        <div>资产梳理一、明确目标与范围1.1、确定梳理目的网络安全:缩小攻击面、识别风险点。资源配置:优化资源利用率、降低成本。合规要求:满足法律法规或行业标准(如等保、ISO27001)。1.2、界定资产范围物理资产:服务器、网络设备、终端设备、IoT设备等。数字资产:操作系统、数据库、应用程序、域名、IP地址、云资源、容器/K8s集群、SaaS应用。数据资产:敏感数据(如客户信息、财务数据)、业务数据、备</div>
                    </li>
                    <li><a href="/article/1949921904571772928.htm"
                           title="AI+MCP智能研判系统架构" target="_blank">AI+MCP智能研判系统架构</a>
                        <span class="text-muted"></span>

                        <div>AI+MCP智能研判系统架构1.系统概述1.1核心理念AI+MCP智能研判系统是一个创新的网络安全分析平台,通过将大语言模型(LLM)的智能理解能力与MCP(ModelContextProtocol)协议的标准化工具调用能力相结合,实现了"自然语言提问→AI智能理解→MCP工具调用→AI深度研判→智能结果输出"的完整闭环。1.2技术创新点智能意图识别:基于LLM的自然语言理解,自动解析用户查询意图</div>
                    </li>
                    <li><a href="/article/1949850129909477376.htm"
                           title="AI驱动的安全自动化响应架构设计" target="_blank">AI驱动的安全自动化响应架构设计</a>
                        <span class="text-muted">TechVision大咖圈</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%90%88%E9%9B%86/1.htm">架构设计合集</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/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/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a>
                        <div>作者寄语:在这个数字化转型的时代,安全不再是"事后诸葛亮",而应该是"未卜先知"。希望这套架构设计能为你的安全建设提供一些启发和参考。如果你有任何问题或想法,欢迎一起交流探讨!文章目录1.引言:当AI遇上网络安全传统安全响应的痛点AI自动化的必要性2.架构设计核心理念设计原则关键能力要求3.系统架构全景图整体架构概览核心组件介绍4.数据处理与威胁检测层数据采集引擎AI检测算法5.智能决策与响应层决</div>
                    </li>
                    <li><a href="/article/1949822154212175872.htm"
                           title="【网络安全】DDOS攻击" target="_blank">【网络安全】DDOS攻击</a>
                        <span class="text-muted">第十六年盛夏.</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E5%AE%89/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/ddos/1.htm">ddos</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>如果文章不足还请各位师傅批评指正!你有没有过这种经历:双11抢券时页面卡成幻灯片,游戏团战突然全员掉线,刷视频时进度条永远转圈圈?除了“网渣”,可能还有个更糟的原因——你正被DDoS攻击“堵门”了!今天用3分钟讲透:什么是DDoS?它和其他攻击有啥区别?怎么发现?怎么防?先看个“生活化栗子”:什么是DDoS攻击?想象你常去的奶茶店,平时10个顾客能轻松接待。突然某天,来了1000个“假顾客”——他</div>
                    </li>
                    <li><a href="/article/1949767684354797568.htm"
                           title="网络安全基础知识【4】" target="_blank">网络安全基础知识【4】</a>
                        <span class="text-muted"></span>

                        <div>DNS的主要作用DNS服务器可以为客户机提供“域名与IP地址”的地址解析服务简述DNS正向反向的含义正向:根据域名查找IP地址反向:根据IP地址查找域名简述常见的DNS资源记录类型,并描述各自的含义A:正向解析PTR:反向解析(将IP地址映射为域名)CNAME:别名解析DNS域名解析查询方式的分类1、递归查询2、迭代查询DHCP的作用可以给终端联网设备分配网络参数DHCP有哪些角色1、DHCP服务</div>
                    </li>
                    <li><a href="/article/1949756719366205440.htm"
                           title="Qt 网络编程进阶:网络安全与加密" target="_blank">Qt 网络编程进阶:网络安全与加密</a>
                        <span class="text-muted">编程与实战</span>
<a class="tag" taget="_blank" href="/search/Qt%E4%B8%80%E7%AB%99%E5%BC%8F%E5%AD%A6%E4%B9%A0/1.htm">Qt一站式学习</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</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/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a>
                        <div>在当今数字化时代,网络安全已成为软件开发中不可忽视的关键环节。Qt作为一款强大的跨平台应用开发框架,提供了全面的网络安全与加密功能,帮助开发者构建安全可靠的网络应用。本文将深入探讨Qt网络编程中的安全与加密技术,包括SSL/TLS通信、数据加密、证书管理、安全认证等方面的核心知识与实践经验。一、SSL/TLS基础配置1.启用HTTPS通信#include#include#include#inclu</div>
                    </li>
                    <li><a href="/article/1949733900595032064.htm"
                           title="网站渗透测试完全手册:零基础到进阶,系统学习网络安全攻防" target="_blank">网站渗透测试完全手册:零基础到进阶,系统学习网络安全攻防</a>
                        <span class="text-muted"></span>

                        <div>渗透测试介绍渗透测试就是模拟攻击者入侵系统,对系统进行一步步地渗透,发现系统地脆弱环节和隐藏风险。最后形成测试报告提供给系统所有者。系统所有者可根据该测试报告对系统进行加固,提升系统的安全性,防止真正的攻击者入侵。渗透测试的前提一定是得经过系统所有者的授权!未经过授权的渗透测试,就是违法行为!渗透测试意义信息安全评估的重要方法,有利于掌握系统整体安全强度。模拟黑客攻击和思维,评估计算机潜在风险。发</div>
                    </li>
                    <li><a href="/article/1949733901236760576.htm"
                           title="2025年网络安全工程师转行指南:必备技能与入行路径" target="_blank">2025年网络安全工程师转行指南:必备技能与入行路径</a>
                        <span class="text-muted"></span>

                        <div>对于提出这个问题的小伙伴来讲,首先,已经明确了是要转行的,并且是清晰了网络安全行业,对于目标感非常强的转行小伙伴来讲,知了姐分别从个人条件、行业、学习方法等三个层面来提供关于“转行人员想做网络安全工程师有哪些要求?”。1、个人学习条件个人学习条件主要关注以下三个方面:专业、学历、年龄。网络安全因目前行业发展非常快速,企业用人需求也非常大,企业对于学历没有太多硬性要求,学历专科/本科都可以,但如果是</div>
                    </li>
                    <li><a href="/article/1949683202188701696.htm"
                           title="网信安全丨十个方面100个网络安全相关知识点,快来学习! 从零基础到精通,收藏这篇就够了!" target="_blank">网信安全丨十个方面100个网络安全相关知识点,快来学习! 从零基础到精通,收藏这篇就够了!</a>
                        <span class="text-muted">七七Seven~</span>
<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><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>网络安全风险无处不在,现梳理了100个网络安全相关的小知识,希望能进一步提升大家的安全意识,帮助大家建立更加安全的网络环境。一、账号密码安全1.如果有初始密码,应尽快修改。2.密码长度不少于8个字符。3.不要使用单一的字符类型,例如只用小写字母,或只用数字。4.用户名与密码不要使用相同字符。5.常见的弱口令尽量避免设置为密码。6.自己、家人、朋友、亲戚、宠物的名字避免设置为密码。7.生日、结婚纪念</div>
                    </li>
                    <li><a href="/article/1949680680355033088.htm"
                           title="【超长爽文】网络安全从业者面试指南(非常详细)从零基础入门到精通,收藏这篇就够了" target="_blank">【超长爽文】网络安全从业者面试指南(非常详细)从零基础入门到精通,收藏这篇就够了</a>
                        <span class="text-muted">黑客阿伦</span>
<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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/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/%E5%AE%89%E5%85%A8/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><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a>
                        <div>文章为笔者偶然看到的github项目《网络安全面试指南》,作者FeeiCN,读完内容深感作者的用心,尽管一些观点因为时间原因与当下行情存在差异,但仍旧值得大家参考,希望能给大家在这行业寒冬带来一些启发,愿正在找工作的朋友一切顺利。多年来筛选了数以千记的简历,为何很多人连面试的机会都没有?参与了数以百记的应聘者的面试,为何如此多的人没有通过最终面试?能力当然是最重要的,可我却见过很多能力不比已经入职</div>
                    </li>
                    <li><a href="/article/1949661643176734720.htm"
                           title="【网络安全】Metasploit 生成的 Shellcode 的导入函数解析以及执行流程分析(1)" target="_blank">【网络安全】Metasploit 生成的 Shellcode 的导入函数解析以及执行流程分析(1)</a>
                        <span class="text-muted">IT老涵</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/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/%E7%BD%91%E7%BB%9C/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><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a>
                        <div>2021年4月,研究人员深入分析了CobaltStrike渗透测试技术,以及它的一些签名规避技术是如何在检测技术下失效的。在本文中,我们将深入讨论Metasploit,这是一个可以与CobaltStrike互操作的常用框架。在本文中,我们将讨论以下主题:shellcode的导入解析——Metasploitshellcode如何定位来自其他DLL的函数,以及我们如何预先计算这些值来解析来自其他有效载</div>
                    </li>
                    <li><a href="/article/1949642741373792256.htm"
                           title="泷羽sec专题课笔记-- Linux作业--开机自启动方法以及破解" target="_blank">泷羽sec专题课笔记-- Linux作业--开机自启动方法以及破解</a>
                        <span class="text-muted">grrrr_1</span>
<a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/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>本笔记为泷羽sec《红队全栈课程》学习笔记,课程请可自行前往B站学习,课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等,请使用该课程、本笔记以及课程和笔记中提及工具的读者,遵守网络安全相关法律法规,切勿进行违法违规违纪的操作。写在最前面的话,我们为什么要学习网络安全这门技术:维护国家安全防范网络攻击:网络安全威胁已成为国家安全的重要挑战。学习网络安全有助于识别和防范来自国内外的网络攻击,防</div>
                    </li>
                    <li><a href="/article/1949607181242396672.htm"
                           title="sudo rm -rf /* → sudo jail -t 3650:当Linux命令遇上《个人信息保护法》" target="_blank">sudo rm -rf /* → sudo jail -t 3650:当Linux命令遇上《个人信息保护法》</a>
                        <span class="text-muted">Akins2025</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div>尊敬的审核:本人文章《sudorm-rf/*→sudojail-t3650:当Linux命令遇上〈个人信息保护法〉》1.纯属技术交流,无任何违法内容2.所有法律引用均来自公开条文3.请依据《网络安全法》第12条“不得无故删除合法内容”处理附:本文结构已通过区块链存证【著作权声明】•2025年7月21日19:08前所有文章已通过CSDN实名认证追溯•合规技术交叉内容已申请存证(区块链时间戳)•侵权必</div>
                    </li>
                    <li><a href="/article/1949607181804433408.htm"
                           title="《网络安全审查办法》极客生存指北(赛博朋克版):怎么在数据洪流中优雅地狗住" target="_blank">《网络安全审查办法》极客生存指北(赛博朋克版):怎么在数据洪流中优雅地狗住</a>
                        <span class="text-muted"></span>

                        <div>尊敬的审核:本人文章《〈网络安全审查办法〉极客生存指北(赛博朋克版):怎么在数据洪流中优雅地狗住》1.纯属技术交流,无任何违法内容2.所有法律引用均来自公开条文3.请依据《网络安全法》第12条“不得无故删除合法内容”处理附:本文结构已通过区块链存证【著作权声明】•2025年7月21日19:08前所有文章已通过CSDN实名认证追溯•法律技术交叉内容已申请存证(区块链时间戳)•侵权必究(参考《刑法》第</div>
                    </li>
                    <li><a href="/article/1949607055035789312.htm"
                           title="(路过一下……)如何用Clang助攻码农兄弟打赢爱情保卫战" target="_blank">(路过一下……)如何用Clang助攻码农兄弟打赢爱情保卫战</a>
                        <span class="text-muted">Akins2025</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div>尊敬的审核:本人文章《(路过一下……)如何用Clang助攻码农兄弟打赢爱情保卫战》1.纯属技术交流,无任何违法内容2.所有法律引用均来自公开条文3.请依据《网络安全法》第12条“不得无故删除合法内容”处理附:本文已存证(副标题:当gcc-O2遇到《民法典》第1079条)一、核心技术:婚姻法LLVM前端cpp//爱情矛盾诊断系统if(wife.anger>0x7FFFFFFF){clang-emit</div>
                    </li>
                    <li><a href="/article/1949605414500888576.htm"
                           title="《职工带薪年假条例》硅基奴隶解放工具.jar——程序猿的第一课应该是学会休息" target="_blank">《职工带薪年假条例》硅基奴隶解放工具.jar——程序猿的第一课应该是学会休息</a>
                        <span class="text-muted">Akins2025</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/bash/1.htm">bash</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>尊敬的审核:本人文章《〈职工带薪年假条例〉硅基奴隶解放工具.jar——程序猿的第一课应该是学会休息》1.纯属技术交流,无任何违法内容2.所有法律引用均来自公开条文3.请依据《网络安全法》第12条“不得无故删除合法内容”处理附:本文结构已通过区块链存证java/***《职工带薪年假条例》V2025.7.27程序猿特供版*编译环境:JDK1.8(因为公司还没升级)*依赖包:*importjava.ut</div>
                    </li>
                    <li><a href="/article/1949469618955415552.htm"
                           title="网络安全-网络安全智能体所有详细工作原理和架构及案例" target="_blank">网络安全-网络安全智能体所有详细工作原理和架构及案例</a>
                        <span class="text-muted"></span>

                        <div>大家读完觉得有帮助记得关注和点赞!!!网络安全智能体(AISecurityAgent)是人工智能与网络安全融合的新范式,通过自主感知、分析决策、联动响应实现动态防护,正在重构传统“人防为主”的安全体系。以下从工作原理、架构设计、行业案例三方面进行深度解析:一、工作原理:三层认知闭环与动态进化1.核心能力分层(L1-L5标准)等级能力特征代表产品L1基础辅助型单步推理,处理预定义任务(如告警初判)9</div>
                    </li>
                    <li><a href="/article/1949468105294016512.htm"
                           title="26、网络安全与故障排查:OpenVPN与iptables的综合应用" target="_blank">26、网络安全与故障排查:OpenVPN与iptables的综合应用</a>
                        <span class="text-muted">y7z8a9</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/iptables/1.htm">iptables</a>
                        <div>网络安全与故障排查:OpenVPN与iptables的综合应用1.OpenVPN安全与配置1.1OpenVPN服务器加固OpenVPN服务器是网络的入口,因此加固服务器并保护其免受攻击至关重要。可以采取以下步骤来加固服务器:-安装操作系统的最小服务器版本,不安装任何不必要的软件。-禁用所有不必要的服务。-仅保留系统中必要的用户。-撤销不再需要访问权限的用户的证书(如清单9-8所示)。-使用双因素认</div>
                    </li>
                    <li><a href="/article/1949435571432648704.htm"
                           title="零基础学后端-PHP语言(第二期-PHP基础语法)(通过php内置服务器运行php文件)" target="_blank">零基础学后端-PHP语言(第二期-PHP基础语法)(通过php内置服务器运行php文件)</a>
                        <span class="text-muted">恰薯条的屑海鸥</span>
<a class="tag" taget="_blank" href="/search/php%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%AD%A6%E4%B9%A0/1.htm">php零基础学习</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</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/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/php%E5%85%A5%E9%97%A8/1.htm">php入门</a><a class="tag" taget="_blank" href="/search/php%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">php服务器</a><a class="tag" taget="_blank" href="/search/php%E6%96%87%E4%BB%B6%E8%BF%90%E8%A1%8C/1.htm">php文件运行</a>
                        <div>经过上期的配置,我们已经有了php的开发环境,编辑器我们继续使用VScode,如果是新来的朋友可以看这期文章来配置VScode零基础学前端-传统前端开发(第一期-开发软件介绍与本系列目标)(VScode安装教程)_vscode启动前端详细步骤-CSDN博客(本系列不过多介绍php的vscode插件,没有插件也是可以用的,只是打代码的速度慢一点)接下来我们来了解php的语法看过我之前网络安全-皮卡丘</div>
                    </li>
                    <li><a href="/article/1949370146065805312.htm"
                           title="从零起步:30岁转行网络安全的实战指南" target="_blank">从零起步:30岁转行网络安全的实战指南</a>
                        <span class="text-muted">程序员罗知知</span>
<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><a class="tag" taget="_blank" href="/search/%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/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/%E9%9B%B6%E5%9F%BA%E7%A1%80/1.htm">零基础</a>
                        <div>从零起步:30岁转行网络安全的实战指南当你决定在30岁转行进入网络安全领域,那感觉就像突然跳进了深不见底的大海,既兴奋又有点怕水。但别担心,这条路上并不孤单。下面,咱就聊聊怎么一步步走向成功。转型之初的迷茫与方向认清自我是第一步。得知道自己到底对哪块感兴趣,是想搞渗透测试,还是更喜欢安全开发?比如我对Linux和编程特别着迷,于是选择了渗透测试作为切入点。接着就是学习资源的选择。网络上信息多得让人</div>
                    </li>
                    <li><a href="/article/1949369892947947520.htm"
                           title="CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!" target="_blank">CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!</a>
                        <span class="text-muted">网络安全宇哥</span>
<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><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/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><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a>
                        <div>一、CTF简介CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCONCT</div>
                    </li>
                    <li><a href="/article/1949337365143154688.htm"
                           title="#渗透测试#网络安全#一文了解什么是中间件!!!" target="_blank">#渗透测试#网络安全#一文了解什么是中间件!!!</a>
                        <span class="text-muted">独行soc</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%80%E6%96%87%E4%BA%86%E8%A7%A3/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><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><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/1.htm">漏洞挖掘</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。目录一、什么是中间件中间件的定义中间件的功能中间件的分类二、中间件技术的发展趋势三、中间件在云上的应用四、云中间件高可用性实现方法五、云中间件集群管理最佳实践六、云中间件性能监控指标详解七、提</div>
                    </li>
                                <li><a href="/article/84.htm"
                                       title="继之前的线程循环加到窗口中运行" target="_blank">继之前的线程循环加到窗口中运行</a>
                                    <span class="text-muted">3213213333332132</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/JFrame/1.htm">JFrame</a><a class="tag" taget="_blank" href="/search/JPanel/1.htm">JPanel</a>
                                    <div>之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。 
 

package thread;

import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util</div>
                                </li>
                                <li><a href="/article/211.htm"
                                       title="linux 常用命令" target="_blank">linux 常用命令</a>
                                    <span class="text-muted">BlueSkator</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E4%BB%A4/1.htm">命令</a>
                                    <div>1.grep 
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。 
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n  '100,200p' 文件名),去查出该关键字之后的日志内容。 
但其实还有更简便的办法,就是用(grep  -B n、-A n、-C n 关键</div>
                                </li>
                                <li><a href="/article/338.htm"
                                       title="php heredoc原文档和nowdoc语法" target="_blank">php heredoc原文档和nowdoc语法</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/heredoc/1.htm">heredoc</a><a class="tag" taget="_blank" href="/search/nowdoc/1.htm">nowdoc</a>
                                    <div><!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Current To-Do List</title>
</head>
<body>
<?</div>
                                </li>
                                <li><a href="/article/465.htm"
                                       title="overflow的属性" target="_blank">overflow的属性</a>
                                    <span class="text-muted">周华华</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a>
                                    <div><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml&q</div>
                                </li>
                                <li><a href="/article/592.htm"
                                       title="《我所了解的Java》——总体目录" target="_blank">《我所了解的Java》——总体目录</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>        准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。 
        在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。 
   &n</div>
                                </li>
                                <li><a href="/article/719.htm"
                                       title="[简单]docx4j常用方法小结" target="_blank">[简单]docx4j常用方法小结</a>
                                    <span class="text-muted">53873039oycg</span>
<a class="tag" taget="_blank" href="/search/docx/1.htm">docx</a>
                                    <div>        本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下: 
         
import java.io.File;
import java.io.FileInputStream;
import ja</div>
                                </li>
                                <li><a href="/article/846.htm"
                                       title="Spring配置学习" target="_blank">Spring配置学习</a>
                                    <span class="text-muted">云端月影</span>
<a class="tag" taget="_blank" href="/search/spring%E9%85%8D%E7%BD%AE/1.htm">spring配置</a>
                                    <div> 
首先来看一个标准的Spring配置文件 applicationContext.xml 
 
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
 xmlns:xsi=&q</div>
                                </li>
                                <li><a href="/article/973.htm"
                                       title="Java新手入门的30个基本概念三" target="_blank">Java新手入门的30个基本概念三</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%96%B0%E6%89%8B/1.htm">新手</a><a class="tag" taget="_blank" href="/search/java+%E5%85%A5%E9%97%A8/1.htm">java 入门</a>
                                    <div>17.Java中的每一个类都是从Object类扩展而来的。  18.object类中的equal和toString方法。  equal用于测试一个对象是否同另一个对象相等。  toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法)   19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。 </div>
                                </li>
                                <li><a href="/article/1100.htm"
                                       title="《2008 IBM Rational 软件开发高峰论坛会议》小记" target="_blank">《2008 IBM Rational 软件开发高峰论坛会议》小记</a>
                                    <span class="text-muted">antonyup_2006</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/1.htm">敏捷开发</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a><a class="tag" taget="_blank" href="/search/IBM/1.htm">IBM</a><a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a>
                                    <div>我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵! 
 
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下. 
 
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.</div>
                                </li>
                                <li><a href="/article/1227.htm"
                                       title="PL/SQL的过程编程,异常,声明变量,PL/SQL块" target="_blank">PL/SQL的过程编程,异常,声明变量,PL/SQL块</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/PL%2FSQL%E7%9A%84%E8%BF%87%E7%A8%8B%E7%BC%96%E7%A8%8B/1.htm">PL/SQL的过程编程</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E5%B8%B8/1.htm">异常</a><a class="tag" taget="_blank" href="/search/PL%2FSQL%E5%9D%97/1.htm">PL/SQL块</a><a class="tag" taget="_blank" href="/search/%E5%A3%B0%E6%98%8E%E5%8F%98%E9%87%8F/1.htm">声明变量</a>
                                    <div>PL/SQL; 
   
   过程;

    符号;

     变量;

     PL/SQL块;

     输出;

     异常;
 
  
  
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作</div>
                                </li>
                                <li><a href="/article/1354.htm"
                                       title="Mockito(三)--完整功能介绍" target="_blank">Mockito(三)--完整功能介绍</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/1.htm">持续集成</a><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>        mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。 
一.使用mockito验证行为 
//首先要import Mockito
import static org.mockito.Mockito.*;

//mo</div>
                                </li>
                                <li><a href="/article/1481.htm"
                                       title="精通Oracle10编程SQL(8)使用复合数据类型" target="_blank">精通Oracle10编程SQL(8)使用复合数据类型</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记录
--自定义PL/SQL记录
DECLARE
  TYPE emp_record_type IS RECORD(
     name emp.ename%TYPE,
     salary emp.sal%TYPE,
     dno emp.deptno%TYPE
  );
  emp_</div>
                                </li>
                                <li><a href="/article/1608.htm"
                                       title="【Linux常用命令一】grep命令" target="_blank">【Linux常用命令一】grep命令</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Linux%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/1.htm">Linux常用命令</a>
                                    <div>grep命令格式 
  
grep [option] pattern [file-list] 
  
  
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。 
  
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特</div>
                                </li>
                                <li><a href="/article/1735.htm"
                                       title="mybatis3入门学习笔记" target="_blank">mybatis3入门学习笔记</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/ibatis/1.htm">ibatis</a><a class="tag" taget="_blank" href="/search/qq/1.htm">qq</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86/1.htm">配置管理</a>
                                    <div>MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。  MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。 
  
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。</div>
                                </li>
                                <li><a href="/article/1862.htm"
                                       title="Linux 命令神器:lsof 入门" target="_blank">Linux 命令神器:lsof 入门</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/lsof/1.htm">lsof</a>
                                    <div>       
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。 
有趣的是,lsof也是有着最多</div>
                                </li>
                                <li><a href="/article/1989.htm"
                                       title="java实现两个大数相加,可能存在溢出。" target="_blank">java实现两个大数相加,可能存在溢出。</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java%E5%AE%9E%E7%8E%B0/1.htm">java实现</a>
                                    <div>
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class BigIntegerAddition {

	/**
	 * 题目:java实现两个大数相加,可能存在溢出。
	 * 如123456789 + 987654321</div>
                                </li>
                                <li><a href="/article/2116.htm"
                                       title="Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法" target="_blank">Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法</a>
                                    <span class="text-muted">Kai_Ge</span>
<a class="tag" taget="_blank" href="/search/Kettle/1.htm">Kettle</a>
                                    <div>Kettle学习资料分享 
  
Kettle 3.2 使用说明书 
目录 
概述..........................................................................................................................................7 
1.Kettle 资源库管</div>
                                </li>
                                <li><a href="/article/2243.htm"
                                       title="[货币与金融]钢之炼金术士" target="_blank">[货币与金融]钢之炼金术士</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D/1.htm">金融</a>
                                    <div> 
 
       自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的 
 
       那么随着人类在理论物理和工程物理上面取得的一些突破性进展...... 
 
       炼金术这个古老</div>
                                </li>
                                <li><a href="/article/2370.htm"
                                       title="Toast原来也可以多样化" target="_blank">Toast原来也可以多样化</a>
                                    <span class="text-muted">dai_lm</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/toast/1.htm">toast</a>
                                    <div>Style 1: 默认 
 

Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
 
Style 2: 顶部显示 
 

Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t</div>
                                </li>
                                <li><a href="/article/2497.htm"
                                       title="java数据计算的几种解决方法3" target="_blank">java数据计算的几种解决方法3</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/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a><a class="tag" taget="_blank" href="/search/r-langue/1.htm">r-langue</a><a class="tag" taget="_blank" href="/search/r/1.htm">r</a>
                                    <div>4、iBatis 
    简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。 
    复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据</div>
                                </li>
                                <li><a href="/article/2624.htm"
                                       title="向网页中插入透明Flash的方法和技巧" target="_blank">向网页中插入透明Flash的方法和技巧</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a>
                                    <div>将 
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。  
  一、Swf透明、无坐标控制  首先教大家最简单的插入Flash的代码,透明,无坐标控制:   注意wmode="transparent"是控制Flash是否透明</div>
                                </li>
                                <li><a href="/article/2751.htm"
                                       title="ios UICollectionView的使用" target="_blank">ios UICollectionView的使用</a>
                                    <span class="text-muted">dcj3sjt126com</span>

                                    <div>UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。 
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。 
1.UIViewController实现委托,代码如</div>
                                </li>
                                <li><a href="/article/2878.htm"
                                       title="Eos平台java公共逻辑" target="_blank">Eos平台java公共逻辑</a>
                                    <span class="text-muted">蕃薯耀</span>
<a class="tag" taget="_blank" href="/search/Eos%E5%B9%B3%E5%8F%B0java%E5%85%AC%E5%85%B1%E9%80%BB%E8%BE%91/1.htm">Eos平台java公共逻辑</a><a class="tag" taget="_blank" href="/search/Eos%E5%B9%B3%E5%8F%B0/1.htm">Eos平台</a><a class="tag" taget="_blank" href="/search/java%E5%85%AC%E5%85%B1%E9%80%BB%E8%BE%91/1.htm">java公共逻辑</a>
                                    <div> Eos平台java公共逻辑 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
蕃薯耀 2015年6月1日 17:20:4</div>
                                </li>
                                <li><a href="/article/3005.htm"
                                       title="SpringMVC4零配置--Web上下文配置【MvcConfig】" target="_blank">SpringMVC4零配置--Web上下文配置【MvcConfig】</a>
                                    <span class="text-muted">hanqunfeng</span>
<a class="tag" taget="_blank" href="/search/springmvc4/1.htm">springmvc4</a>
                                    <div>与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。 
  
applicationContext-MvcConfig.xml 
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
	<</div>
                                </li>
                                <li><a href="/article/3132.htm"
                                       title="解决ie和其他浏览器poi下载excel文件名乱码" target="_blank">解决ie和其他浏览器poi下载excel文件名乱码</a>
                                    <span class="text-muted">jackyrong</span>
<a class="tag" taget="_blank" href="/search/Excel/1.htm">Excel</a>
                                    <div>   使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码, 
 
因此必须综合判断,编写一个工具类: 
 
 
     

/**
     * 
     * @Title: pro</div>
                                </li>
                                <li><a href="/article/3259.htm"
                                       title="挥洒泪水的青春" target="_blank">挥洒泪水的青春</a>
                                    <span class="text-muted">lampcy</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%B4%BB/1.htm">生活</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连! 
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到</div>
                                </li>
                                <li><a href="/article/3386.htm"
                                       title="稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制" target="_blank">稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制</a>
                                    <span class="text-muted">nannan408</span>

                                    <div>   对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢? 
   笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。 
   我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在</div>
                                </li>
                                <li><a href="/article/3513.htm"
                                       title="动态设置iframe高度(iframe高度自适应)" target="_blank">动态设置iframe高度(iframe高度自适应)</a>
                                    <span class="text-muted">Rainbow702</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/iframe/1.htm">iframe</a><a class="tag" taget="_blank" href="/search/contentDocument/1.htm">contentDocument</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%BA%A6%E8%87%AA%E9%80%82%E5%BA%94/1.htm">高度自适应</a><a class="tag" taget="_blank" href="/search/%E5%B1%80%E9%83%A8%E5%88%B7%E6%96%B0/1.htm">局部刷新</a>
                                    <div>如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。 
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。 
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构: 
<div id="content">
    <div id=&quo</div>
                                </li>
                                <li><a href="/article/3640.htm"
                                       title="用Rapael做图表" target="_blank">用Rapael做图表</a>
                                    <span class="text-muted">tntxia</span>
<a class="tag" taget="_blank" href="/search/rap/1.htm">rap</a>
                                    <div>function drawReport(paper,attr,data){ 
     
    var width = attr.width; 
    var height = attr.height; 
     
    var max = 0; 
  &nbs</div>
                                </li>
                                <li><a href="/article/3767.htm"
                                       title="HTML5 bootstrap2网页兼容(支持IE10以下)" target="_blank">HTML5 bootstrap2网页兼容(支持IE10以下)</a>
                                    <span class="text-muted">xiaoluode</span>
<a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a>
                                    <div><!DOCTYPE html>
<html>
<head lang="zh-CN">
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge"></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>