Web渗透测试-实战 方法 思路 总结

尽可能的搜集目标的信息

  • 端口信息
  • DNS信息
  • 员工邮箱

信息搜集的分类

1、主动式信息搜集(可获取到的信息较多,但易被目标发现)
2、通过直接发起与被测目标网络之间的互动来获取相关信息,如通过Nmap扫描目标系统。
3、被动式信息搜集(搜集到的信息较少,但不易被发现)
4、通过第三方服务来获取目标网络相关信息。如通过搜索引擎方式来搜集信息。

搜索引擎

Google hacking

常用搜索语法:
intitle:KEYWORD //搜索网页标题中含有关键词的网页
intext:KEYWORD //搜索站点正文中含有关键词的网页
inurl:KEYWORD //搜索URL中包含有指定字符串的网址
inurl:php?id= //搜索PHP网页
site:DOMAIN //在指定站点内查找相关的内容
filetype:FILE //搜索指定类型的文件

我们可以同时附加多个条件进行筛选,比如 inurl:admin intitle:农具
两个筛选条件之间用空格隔开

搜索引擎语法

关键字(搜索范围) 引擎
【1】完全匹配搜索——精确匹配 “” 引号 和书名号《》
查询词很长 ,baidu分析过后 可能是拆分
把包含引号部分 作为整体 顺序匹配 来搜索

引号为英文状态下的引号。
屏蔽一些百度推广

eg:
“网站推广策划” 整个名字
"“手机” / 《手机》 "

【2】± 加减号的用法
加号 同时包含两个关键字 相当于空格和and。

减号 搜索结果中不含特定查询词 —— 前面必须是空格 后面紧连着需要排除的词

eg:
电影 -搜狐
音乐 +古风

【3】OR的用法   
搜索两个或更多关键字

eg:
“seo or 深圳seo”
可能出现其中的一个关键字,也可能两个都出现。
“seo or 你的名字”(这里不加引号)。
如果你的名字为常见名。你会发现意外的惊喜,和你同名同姓的居然还有同行业。
“seo or 深圳seo”(这里不加引号) 就发现了和同名同姓的,还跟我同行。
 
 
【4】intitle

网页标题内容——网页内容提纲挈领式的归纳
竞争页面
关键词优化

eg:
(搜的时候不加引号)
“intitle:管理登录”
“新疆 intitle:雪菊”
“网络推广 intitle:他的名字”

【5】intext和 allintext (针对google有效)
在网页的内容中出现,而不是标题,

找页面里包含‘SEO’,标题包含SEO的对应文章页面。
只搜索网页部分中包含的文字(忽略了标题,URL等的文字),
类似在某些网站中使用的“文章内容搜索”功能。

eg:
“深圳SEO intext:SEO”

【6】inurl

搜索网址中 url链接 包含的的字符串 (中文 英文),
竞争对手 排名

eg:
搜索登录地址,可以这样写“inurl:admin.asp”,
想搜索Discuz的论坛,可以输入inurl:forum.php,
“csdn博客 inurl:py_shell”
 
【7】site

搜索特定网页
看搜索引擎收录了多少页面。

——某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中
“胡歌 空格 insite:www.sina.com.cn”

【8】link

搜索某个网站的链接。
搜索某个网站url的内部链接和外部链接
不是对每个搜索引擎都很准,尤其是Google,
只会返回索引库中的一部分,并且是随机的一部分,
百度则不支持这个指令。
雅虎全面支持,而且查询得比较准确,
一般我们查看网站的链接都以雅虎为准,
【9】filetype

搜索你想要的电子书,限定在指定文档格式中

并不是所有的格式都会支持,现在百度支持的格式有pdf、doc、xls、all、ppt、rtf,

eg:
“python教程 filetype:pdf”
doc文件,就写“filetype:doc”,
“seo filetype:doc”,(搜的时候不加引号) ,

【10】related(只使用于google)   
指定URL相关的页面、
一般都会显示与你网站有相同外链的网站。
竞争的对手,
相同的外链。

【11】 * 通配符 (百度不支持)
eg: 搜索 * 擎

【12】inanchor 导入链接 锚文字中包含 (百度不支持)
竞争对手
链接指向

【13】allintitle 包含多组关键字
【14】allinurl
【15】linkdomain (雅虎)
某域名反向链接 排除 得到外部链接
linkdomain: xxx.com -xxx.com

【16】related (google) 某个网站 关联页面
有共同外部链接
【17】domain 某一网站相关信息
“domain:url”

【18】index (百度)
“index of mp3”

【19】A|B 包含a或者b

2. Shodan

Shodan与Google这种搜索网址的搜索引擎不同的是,
Shodan是用来搜索网络空间中在线设备的。

shodan常用命令:
 asn         区域自治编号      
 port        端口                           
 org         ip所属组织机构
 os          操作系统类型
 http.html   网页内容
 html.title  网页标题
 http.server http请求返回中server的类型
 http.status http请求返回响应码的状态
 city        市
 country     国家
 product     所使用的软件或产品
 vuln        CVE漏洞编号,例如:vuln:CVE-2014-0723
 net         搜索一个网段,例如:123.23.1.0/24
 country:"CN"  os:"windows"

在这里插入图片描述

3. Zoomeye(钟馗之眼)

ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息。

搜索语法
1、app:nginx  组件名
2、ver:1.0  版本
3、os:windows  操作系统
4、country:”China”  国家
5、city:”hangzhou”  城市
6、port:80  端口
7、hostname:google  主机名
8、site:thief.one  网站域名
9、desc:nmask  描述
10、keywords:nmask’blog  关键词
11、service:ftp  服务类型
12、ip:8.8.8.8  ip地址
13、cidr:8.8.8.8/24  ip地址段

通过以上不同种类的搜索引擎我们可以获得相当多的有用的信息,甚至平时搜索东西我们也可以通过zoomeye来找到自己想要的东西

企业信息

  1. 天眼查

天眼查是一款“都能用的商业安全工具”,根据用户的不同需求,实现了企业背景、企业发展、司法风险、经营风险、经营状况、知识产权方面等多种数据维度的检索。

  1. 企业信用信息公示系统

  2. 工业和信息化部ICP/IP地址/域名信息备案管理系统

以上几个可以用来深入了解渗透目标网站所属企业的相关信息

whois信息

whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。
whois信息可以获取关键注册人的信息,包括注册商、联系人、联系邮箱、联系电话、创建时间等,
可以进行邮箱反查域名,爆破邮箱,社工,域名劫持,寻找旁站等等。

常用的工具有:

站长工具、爱站、微步在线

Nslookup的用法

作用:
查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题

  • 直接查询域名情况:

命令格式:nslookup domain[dns-server]

示例:nslookup www.163.com

  • 查询其他记录

命令格式:nslookup -qt=type domain[dns-server]

示例:nslookup -qt=CNAME www.163.com

其中,type可以是以下这些类型:

A 地址记录(直接查询默认类型)

AAAA 地址记录

AFSDB Andrew文件系统数据库服务器记录

ATMA ATM地址记录

CNAME 别名记录

HINFO 硬件配置记录,包括CPU、操作系统信息

ISDN 域名对应的ISDN号码

MB 存放指定邮箱的服务器

MG 邮件组记录

MINFO 邮件组和邮箱的信息记录

MR 改名的邮箱记录

MX 邮件服务器记录

NS 名字服务器记录

PTR 反向记录

RP 负责人记录

RT 路由穿透记录

SRV TCP服务器信息记录

TXT 域名对应的文本信息

X25 域名对应的X.25地址记录 

查询语法:

nslookup–d[其他参数]domain[dns-server]

  • 返回信息说明
    服务器:本机DNS服务器信息

非权威应答:Non-authoritative answer,
除非实际存储DNS Server中获得域名解析回答的,都称为非权威应答。
也就是从缓存中获取域名解析结果。

address:目标域名对应物理IP可有多个

aliase:目标域名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同样nslookup也可以验证是否存在域传送漏洞,步骤如下:

nslookup进入交互式模式
Server 设置使用的DNS服务器
ls命令列出某个域中的所有域名

子域名收集

子域名收集可以发现更多渗透测试范围内的域名/子域名,以增加漏洞发现机率;
探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。

常用的工具有:
子域名挖掘机Layer、
subDomainsBrute、
Dnsenum、
Dnsmap

这里推荐一个在线收集子域名的网站 https://phpinfo.me/domain/
但是可能会出现遇到泛解析防御机制的情况

真实IP获取

现在大多数的网站都开启了CDN加速,导致我们获取到的IP地址不一定是真实的IP地址。
什么是CDN呢?

CDN的全称是Content Delivery Network,即内容分发网络。
其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,
CDN系统能够实时地根据网络流量和各节点的连接、
负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上


其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

如果想获取真实IP,我们可以使用以下几种方法

1.多地Ping法:由CDN的原理,不同的地方去Ping服务器,如果IP不一样,则目标网站肯定使用了CDN。
这里推荐一个网站可以多个地点ping服务器,https://asm.ca.com/en/ping.php

2.二级域名法:目标站点一般不会把所有的二级域名放cdn上。
通过在线工具
如站长帮手,收集子域名,确定了没使用CDN的二级域名后。

本地将目标域名绑定到同IP(修改host文件),如果能访问就说明目标站与此二级域名在同一个服务器上;
如果两者不在同一服务器也可能在同C段,扫描C段所有开80端口的IP,然后挨个尝试。

3.nslookup法:
找国外的比较偏僻的DNS解析服务器进行DNS查询,因为大部分CDN提供商只针对国内市场,
而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP。


4.Ping法:
直接ping example.com而不是www.example.com,因
为现有很多CDN厂商基本只要求把www.example.com cname到CDN主服务器上去,
那么直接ping example.com有可能直接获得真实IP。 

指纹识别

通过识别目标网站所使用的操作系统、CMS、服务器与中间件信息,
可以帮助我们进一步了解渗透测试环境,可以利用已知的一些CMS漏洞或中间件漏洞来进行攻击。

1、可以在以下地方获取信息:
1.指定路径下指定名称的js文件或代码 
2.指定路径下指定名称的css文件或代码 
3.中的内容,有些程序标题中会带有程序标识,但不是很多。
4.meta标记中带程序标识
<meta name="description"/>
<meta name="keywords"/>
<meta name="generator"/>
<meta name="author"/>
<meta name="copyright"/>

5.display:none中的版权信息。

6.页面底部版权信息,关键字© Powered by等。

7.readme.txt、License.txt、help.txt等文件。

8.指定路径下指定图片文件,如一些小的图标文件,后台登录页面中的图标文件
等,一般管理员不会修改它们。

9.注释掉的html代码中<!–

10.http头的X-Powered-By中的值,有的应用程序框架会在此值输出。

11.cookie中的关键字

12.robots.txt文件中的关键字
robots.txt 中禁止的路径很可能说明站点就有这些路径 而且robots.txt 多是可访问的

13.404页面

14.302返回时的旗标
 

 
 
</code></pre> 
  <h6>2、 大小写</h6> 
  <p>访问网站:<br> http://www.xxx.com/index.html<br> http://www.xxx.com/inDex.html</p> 
  <p>Windows操作系统不区分大小写,Linux系统大小写敏感,用此方法能够判断是Windows还是Linux系统。</p> 
  <p>工具 :<br> 云悉指纹、<br> Whatweb、<br> httprint、<br> Bugscanner、<br> 浏览器插件 wappalyzer</p> 
  <h6>3、有的时候HTTP返回报文的server也可能泄露相关信息</h6> 
  <h2>端口扫描</h2> 
  <p>扫描端口可以使用Nmap,masscan进行扫描探测,<br> 尽可能多的搜集开启的端口好已经对应的服务版本,</p> 
  <p>得到确切的服务版本后可以搜索有没有对应版本的漏洞。<br> 常见的端口信息及渗透方法:</p> 
  <p>端口 ———————————— 服务 —————————— 渗透用途</p> 
  <pre><code>tcp 20,21
FTP 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)



tcp 22 
SSH 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等

tcp 23 
Telnet 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令

tcp 25 
SMTP 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑

tcp/udp 53 
DNS 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控

tcp/udp 69 
TFTP 尝试下载目标及其的各类重要配置文件

tcp 80-89,443,8440-8450,8080-8089 
各种常用的Web服务端口 可尝试经典的topn,,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等……

tcp 110 
POP3 可尝试爆破,嗅探

tcp 111,2049 
NFS 权限配置不当

tcp 137,139,445 
Samba 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……

tcp 143
IMAP 可尝试爆破

udp 161 
SNMP 爆破默认团队字符串,搜集目标内网信息

tcp 389 
LDAP ldap注入,允许匿名访问,弱口令

tcp 512,513,514
 Linux rexec 可爆破,rlogin登陆

tcp 873 
Rsync 匿名访问,文件上传

tcp 1194 
OpenVPN 想办法钓VPN账号,进内网

tcp 1352 
Lotus 弱口令,信息泄漏,爆破

tcp 1433 
SQL Server 注入,提权,sa弱口令,爆破

tcp 1521 
Oracle tns爆破,注入,弹shell…

tcp 1500 
ISPmanager 弱口令

tcp 1723 
PPTP 爆破,想办法钓VPN账号,进内网

tcp 2082,2083 
cPanel 弱口令

tcp 2181 
ZooKeeper 未授权访问

tcp 2601,2604 
Zebra 默认密码zerbra

tcp 3128 
Squid 弱口令

tcp 3312,3311 
kangle 弱口令

tcp 3306 
MySQL 注入,提权,爆破

tcp 3389 
Windows rdp shift后门[需要03以下的系统],爆破,ms12-020

tcp 3690 
SVN svn泄露,未授权访问

tcp 4848 
GlassFish 弱口令

tcp 5000 
Sybase/DB2 爆破,注入

tcp 5432 
PostgreSQL 爆破,注入,弱口令

tcp 5900,5901,5902 
VNC 弱口令爆破

tcp 5984 
CouchDB 未授权导致的任意指令执行

tcp 6379 
Redis 可尝试未授权访问,弱口令爆破

tcp 7001,7002 
WebLogic Java反序列化,弱口令

tcp 7778
 Kloxo 主机面板登录

tcp 8000 
Ajenti 弱口令

tcp 8443 
Plesk 弱口令

tcp 8069 
Zabbix 远程执行,SQL注入

tcp 8080-8089 
Jenkins,JBoss 反序列化,控制台弱口令

tcp 9080-9081,9090 
WebSphere Java反序列化/弱口令

tcp 9200,9300 
ElasticSearch 远程执行

tcp 11211 
Memcached 未授权访问

tcp 27017,27018 
MongoDB 爆破,未授权访问

tcp 50070,50030
 Hadoop 默认端口未授权访问
</code></pre> 
  <h2>Nmap</h2> 
  <p>Nmap是一个网络连接端口扫描软件,用来扫描网上电脑开放的网络连接端口。<br> 确定哪些服务运行在哪些连接端口,<br> 并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。<br> 功能:<br> 1、 主机发现<br> 2、 端口扫描<br> 3、 版本侦测<br> 4、 OS侦测</p> 
  <h2>旁站C段查询</h2> 
  <p>旁站:是和目标网站在同一台服务器上的其它的网站。</p> 
  <p>旁注:通过入侵安全性较差的旁站,之后可以通过提权跨目录等手段拿到目标服务器的权限。</p> 
  <p>工具:<br> K8_C段旁注工具、<br> WebRobot、<br> 御剑、<br> 明小子 …</p> 
  <p>C段:每个IP有ABCD四个段,<br> 也就是说是D段1-255中的一台服务器,<br> 然后利用工具嗅探拿下该服务。</p> 
  <p>比如192.168.3.0-255的设备都处于同一个c段。</p> 
  <p>C段入侵:<br> 目标ip为192.168.1.128,可以入侵192.168.1.*的任意一台机器,<br> 然后利用一些黑客工具嗅探获取在网络上传输的各种信息。</p> 
  <p>工具:<br> Cain、<br> Sniffit 、<br> Snoop、<br> Tcpdump、</p> 
  <p>Dsniff</p> 
  <p>其他信息<br> Web敏感文件<br> robots.txt、crossdomin.xml、sitemap.xml、源码泄漏文件 …</p> 
  <p>WAF信息<br> WAF识别大多基于Headers头信息,</p> 
  <p>还可以使用Wafw00f,Sqlmap的waf脚本,Nmap的http-waf-detect和http-waf-fingerprint脚本等等。</p> 
  <p>相关漏洞</p> 
  <p>漏洞查询站点:exploitdb、hackerone、CNVD、0day5、乌云漏洞库镜像站 …</p> 
  <hr> 
  <hr> 
  <hr> 
  <hr> 
  <h3>httpscan</h3> 
  <p>httpscan是一个扫描指定CIDR网段的Web主机的小工具。<br> 和端口扫描器不一样,httpscan是以爬虫的方式进行Web主机发现,<br> 因此相对来说不容易被防火墙拦截</p> 
  <p><img src="http://img.e-com-net.com/image/info8/4b891307924c4319829b77880617630d.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <pre><code>Usage:./httpscan IP/CIDR –t threads

Example:./httpscan.py 10.20.30.0/24 –t 10
</code></pre> 
  <p>https://github.com/zer0h/httpscan</p> 
  <hr> 
  <hr> 
  <hr> 
  <hr> 
  <h3>dirsearch</h3> 
  <pre><code> python3.x ./dirsearch.py -u "http://xxxx.xxx" -e php
</code></pre> 
  <p>dirsearch需要使用Python3.x<br> 替换"http://xxxx.xxx"为目标网址即可</p> 
  <h2>1 前端信息泄露</h2> 
  <h3>1 调试器</h3> 
  <pre><code> static目录  下的 webpack目录
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/5f2496b8d1544269858920f16a817f86.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <pre><code>Webpack 是一个前端资源加载/打包工具。
它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。

它的存在依赖于node.js
</code></pre> 
  <p>包揽了其它静态文件 , 可以从中找一下敏感数据或是接口</p> 
  <ul> 
   <li>平常项目 api所部署的服务器中间件会更多<br> 看起来都是SpringBoot框架<br> <img src="http://img.e-com-net.com/image/info8/3494ebdbfd8042868aa74fdfcaeb93b1.jpg" alt="在这里插入图片描述" width="0" height="0"><br> burp和spring专属字典 (springboot 信息泄露)</li> 
  </ul> 
  <pre><code>/%20/swagger-ui.html
/actuator
/actuator/auditevents
/actuator/beans
/actuator/conditions
/actuator/configprops
/actuator/env
/actuator/health
/actuator/heapdump
/actuator/httptrace
/actuator/hystrix.stream
/actuator/info
/actuator/jolokia
/actuator/logfile
/actuator/loggers
/actuator/mappings
/actuator/metrics
/actuator/scheduledtasks
/actuator/swagger-ui.html
/actuator/threaddump
/actuator/trace
/api.html
/api/index.html
/api/swagger-ui.html
/api/v2/api-docs
/api-docs
/auditevents
/autoconfig
/beans
/caches
/cloudfoundryapplication
/conditions
/configprops
/distv2/index.html
/docs
/druid/index.html
/druid/login.html
/druid/websession.html
/dubbo-provider/distv2/index.html
/dump
/entity/all
/env
/env/(name)
/eureka
/flyway
/gateway/actuator
/gateway/actuator/auditevents
/gateway/actuator/beans
/gateway/actuator/conditions
/gateway/actuator/configprops
/gateway/actuator/env
/gateway/actuator/health
/gateway/actuator/heapdump
/gateway/actuator/httptrace
/gateway/actuator/hystrix.stream
/gateway/actuator/info
/gateway/actuator/jolokia
/gateway/actuator/logfile
/gateway/actuator/loggers
/gateway/actuator/mappings
/gateway/actuator/metrics
/gateway/actuator/scheduledtasks
/gateway/actuator/swagger-ui.html
/gateway/actuator/threaddump
/gateway/actuator/trace
/health
/heapdump
/heapdump.json
/httptrace
/hystrix
/hystrix.stream
/info
/intergrationgraph
/jolokia
/jolokia/list
/liquibase
/logfile
/loggers
/mappings
/metrics
/monitor
/prometheus
/refresh
/scheduledtasks
/sessions
/shutdown
/spring-security-oauth-resource/swagger-ui.html
/spring-security-rest/api/swagger-ui.html
/static/swagger.json
/sw/swagger-ui.html
/swagger
/swagger/codes
/swagger/index.html
/swagger/static/index.html
/swagger/swagger-ui.html
/swagger-dubbo/api-docs
/swagger-ui
/swagger-ui.html
/swagger-ui/html
/swagger-ui/index.html
/system/druid/index.html
/template/swagger-ui.html
/threaddump
/trace
/user/swagger-ui.html
/v1.1/swagger-ui.html
/v1.2/swagger-ui.html
/v1.3/swagger-ui.html
/v1.4/swagger-ui.html
/v1.5/swagger-ui.html
/v1.6/swagger-ui.html
/v1.7/swagger-ui.html
/v1.8/swagger-ui.html
/v1.9/swagger-ui.html
/v2.0/swagger-ui.html
/v2.1/swagger-ui.html
/v2.2/swagger-ui.html
/v2.3/swagger-ui.html
/v2/swagger.json
/webpage/system/druid/index.html
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/3d90978994664cb4a5c575260a426507.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/a564a98fcee34f89afeeb389c7db79bb.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <h3>2 功能点 - 注册</h3> 
  <p>注册完后登陆的功能也少的可怜,只能上传上传头像。<br> 格式被严格限制,绕不过去,而上传上去了,也是上传到了oss上</p> 
  <p>没有直接调用oss上的图片资源,而是将用户的图片地址存储起来<br> 控制存储地址, 能造成ssrf</p> 
  <p>有关图片(头像)操作的地方</p> 
  <p><img src="http://img.e-com-net.com/image/info8/f54a144ba35a42cfb9e5dded8ce09c08.jpg" alt="在这里插入图片描述" width="0" height="0"><br> baseurl为api的服务器地址,那groupId是什么<br> 翻了翻别的地方的js,<br> 此域名的每个子域名,都对应着一个id,有了id才知道是哪个子公司进行的相应操作</p> 
  <p><img src="http://img.e-com-net.com/image/info8/51c52fdeb2ce48ff83bd4c69c7c28293.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/3140bfed700948c8b49bbb8c1825684a.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 拿到groupId<br> 进行不了相应操作, 没有携带access_token</p> 
  <p><img src="http://img.e-com-net.com/image/info8/39609158469d4964b597c5d94feeea60.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 网站有个注册功能,登陆后,它会自动给你分配一个access_token</p> 
  <p><img src="http://img.e-com-net.com/image/info8/a5a73871d463454d8c14bbe2c3afdc3f.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <h3>3 dnslog</h3> 
  <p><img src="http://img.e-com-net.com/image/info8/19e19417991940baa8e438654d78d508.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <h6>Python爬虫——爬取 url 采集器</h6> 
  <h3>url采集器</h3> 
  <p>0x01 前言</p> 
  <ul> 
   <li>URl采集 批量刷洞</li> 
  </ul> 
  <p>0x02 ZoomEyeAPI脚本编写</p> 
  <ul> 
   <li>ZoomEye是一款针对网络空间的搜索引擎</li> 
   <li>收录了互联网空间中的设备、网站及其使用的服务或组件等信息。<br> ZoomEye 拥有两大探测引擎:Xmap 和 Wmap<br> 分别针对网络空间中的设备及网站,<br> 通过 24 小时不间断的探测、识别,标识出互联网设备及网站所使用的服务及组件。</li> 
   <li>研究人员可以通过 ZoomEye 方便的了解组件的普及率及漏洞的危害范围等信息。</li> 
   <li>虽然被称为 “黑客友好” 的搜索引擎,</li> 
   <li>但 ZoomEye 并不会主动对网络设备、网站发起攻击,收录的数据也仅用于安全研究。</li> 
   <li>ZoomEye更像是互联网空间的一张航海图。<br> <img src="http://img.e-com-net.com/image/info8/dbbba70efbcc46c19a961d2341c9a458.jpg" alt="在这里插入图片描述" width="0" height="0"><br> API 文档 </li> 
  </ul> 
  <p><img src="http://img.e-com-net.com/image/info8/cbfe93c47d25429799d894a6ad7a6d2a.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p>先登录,然后获取access_token<br> <img src="http://img.e-com-net.com/image/info8/c0137cf30da94224963a7642a113ffa5.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/0d4eb7818a2545798562542a7783fd2d.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/236d57b8e9164c0a92aedb31ed94460f.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/f3d50e3b0e504cabab678cf19020c757.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <pre><code class="prism language-javascript"> user <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR USERNAME:'</span><span class="token punctuation">)</span>
passwd <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR PASSWORD:'</span><span class="token punctuation">)</span>
</code></pre> 
  <pre><code class="prism language-javascript"> def <span class="token function">Login</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">:</span>
    data_info <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'username'</span> <span class="token operator">:</span> user<span class="token punctuation">,</span><span class="token string">'password'</span> <span class="token operator">:</span> passwd<span class="token punctuation">}</span>
    data_encoded <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">dumps</span><span class="token punctuation">(</span>data_info<span class="token punctuation">)</span> 
    respond <span class="token operator">=</span> requests<span class="token punctuation">.</span><span class="token function">post</span><span class="token punctuation">(</span>url <span class="token operator">=</span> <span class="token string">'https://api.zoomeye.org/user/login'</span><span class="token punctuation">,</span>data <span class="token operator">=</span> data_encoded<span class="token punctuation">)</span>
    <span class="token keyword">try</span><span class="token operator">:</span>
        r_decoded <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">loads</span><span class="token punctuation">(</span>respond<span class="token punctuation">.</span>text<span class="token punctuation">)</span> 
        access_token <span class="token operator">=</span> r_decoded<span class="token punctuation">[</span><span class="token string">'access_token'</span><span class="token punctuation">]</span>
    except KeyError<span class="token operator">:</span>
        <span class="token keyword">return</span> <span class="token string">'[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'</span>
    <span class="token keyword">return</span> access_token
<span class="token keyword">if</span> __name__ <span class="token operator">==</span> <span class="token string">'__main__'</span><span class="token operator">:</span>
    print <span class="token function">Login</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/b5ebaa8793e94c5daeefacabd06485cf.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <pre><code class="prism language-javascript"> def <span class="token function">search</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">:</span>
    headers <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'Authorization'</span><span class="token operator">:</span> <span class="token string">'JWT '</span> <span class="token operator">+</span> <span class="token function">Login</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">}</span>
    r <span class="token operator">=</span> requests<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>url <span class="token operator">=</span> <span class="token string">'https://api.zoomeye.org/host/search?query=tomcat&page=1'</span><span class="token punctuation">,</span>
                         headers <span class="token operator">=</span> headers<span class="token punctuation">)</span>
    response <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">loads</span><span class="token punctuation">(</span>r<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
    <span class="token function">print</span><span class="token punctuation">(</span>response<span class="token punctuation">)</span>
<span class="token keyword">if</span> __name__ <span class="token operator">==</span> <span class="token string">'__main__'</span><span class="token operator">:</span>
    <span class="token function">search</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/f86e20ad0e49423096037ef6e8ca589c.jpg" alt="在这里插入图片描述" width="0" height="0"><br> JSON数据,<br> 我们可以取出IP部分…</p> 
  <pre><code class="prism language-javascript">  <span class="token function">print</span><span class="token punctuation">(</span>response<span class="token punctuation">)</span>
    <span class="token keyword">for</span> x <span class="token keyword">in</span> response<span class="token punctuation">[</span><span class="token string">'matches'</span><span class="token punctuation">]</span><span class="token operator">:</span>
        <span class="token function">print</span><span class="token punctuation">(</span>x<span class="token punctuation">[</span><span class="token string">'ip'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/854a50db2aa74082b0c8cd13e85547b8.jpg" alt="在这里插入图片描述" width="0" height="0"><br> HOST的单页面采集<br> 接下来,就是用FOR循环…获取多页的IP</p> 
  <pre><code class="prism language-javascript"> 


#<span class="token operator">-</span><span class="token operator">*</span><span class="token operator">-</span> coding<span class="token operator">:</span> <span class="token constant">UTF</span><span class="token operator">-</span><span class="token number">8</span> <span class="token operator">-</span><span class="token operator">*</span><span class="token operator">-</span>
<span class="token keyword">import</span> requests
<span class="token keyword">import</span> json

<span class="token keyword">from</span> click<span class="token punctuation">.</span>_compat <span class="token keyword">import</span> raw_input


def <span class="token function">Login</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">:</span>
    data_info <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'username'</span> <span class="token operator">:</span> user<span class="token punctuation">,</span><span class="token string">'password'</span> <span class="token operator">:</span> passwd<span class="token punctuation">}</span>
    data_encoded <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">dumps</span><span class="token punctuation">(</span>data_info<span class="token punctuation">)</span>
    respond <span class="token operator">=</span> requests<span class="token punctuation">.</span><span class="token function">post</span><span class="token punctuation">(</span>url <span class="token operator">=</span> <span class="token string">'https://api.zoomeye.org/user/login'</span><span class="token punctuation">,</span>data <span class="token operator">=</span> data_encoded<span class="token punctuation">)</span>
    <span class="token keyword">try</span><span class="token operator">:</span>
        r_decoded <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">loads</span><span class="token punctuation">(</span>respond<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
        access_token <span class="token operator">=</span> r_decoded<span class="token punctuation">[</span><span class="token string">'access_token'</span><span class="token punctuation">]</span>
    except KeyError<span class="token operator">:</span>
        <span class="token keyword">return</span> <span class="token string">'[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'</span>
    <span class="token keyword">return</span> access_token



def <span class="token function">search</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">:</span>
    headers <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'Authorization'</span><span class="token operator">:</span> <span class="token string">'JWT '</span> <span class="token operator">+</span> <span class="token function">Login</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">}</span>
    <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token function">range</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">int</span><span class="token punctuation">(</span><span class="token constant">PAGECOUNT</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">:</span>
        r <span class="token operator">=</span> requests<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>url<span class="token operator">=</span><span class="token string">'https://api.zoomeye.org/host/search?query=tomcat&page='</span> <span class="token operator">+</span> <span class="token function">str</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">,</span>
                         headers<span class="token operator">=</span>headers<span class="token punctuation">)</span>
        response <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">loads</span><span class="token punctuation">(</span>r<span class="token punctuation">.</span>text<span class="token punctuation">)</span> 
    <span class="token function">print</span><span class="token punctuation">(</span>response<span class="token punctuation">)</span>
    <span class="token keyword">for</span> x <span class="token keyword">in</span> response<span class="token punctuation">[</span><span class="token string">'matches'</span><span class="token punctuation">]</span><span class="token operator">:</span>
        <span class="token function">print</span><span class="token punctuation">(</span>x<span class="token punctuation">[</span><span class="token string">'ip'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>



<span class="token keyword">if</span> __name__ <span class="token operator">==</span> <span class="token string">'__main__'</span><span class="token operator">:</span>
    user <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR USERNAME:'</span><span class="token punctuation">)</span>
    passwd <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR PASSWORD:'</span><span class="token punctuation">)</span>
    <span class="token constant">PAGECOUNT</span> <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR SEARCH_PAGE_COUNT(eg:10):'</span><span class="token punctuation">)</span>
    <span class="token function">search</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre> 
  <p>这样就取出了你想要的页码的数据,然后就是完善+美观代码了…</p> 
  <pre><code class="prism language-javascript">  


#<span class="token operator">-</span><span class="token operator">*</span><span class="token operator">-</span> coding<span class="token operator">:</span> <span class="token constant">UTF</span><span class="token operator">-</span><span class="token number">8</span> <span class="token operator">-</span><span class="token operator">*</span><span class="token operator">-</span>
<span class="token keyword">import</span> requests
<span class="token keyword">import</span> json

<span class="token keyword">from</span> click<span class="token punctuation">.</span>_compat <span class="token keyword">import</span> raw_input


def <span class="token function">Login</span><span class="token punctuation">(</span>user<span class="token punctuation">,</span>passwd<span class="token punctuation">)</span><span class="token operator">:</span>
    data_info <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'username'</span> <span class="token operator">:</span> user<span class="token punctuation">,</span><span class="token string">'password'</span> <span class="token operator">:</span> passwd<span class="token punctuation">}</span>
    data_encoded <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">dumps</span><span class="token punctuation">(</span>data_info<span class="token punctuation">)</span>
    respond <span class="token operator">=</span> requests<span class="token punctuation">.</span><span class="token function">post</span><span class="token punctuation">(</span>url <span class="token operator">=</span> <span class="token string">'https://api.zoomeye.org/user/login'</span><span class="token punctuation">,</span>data <span class="token operator">=</span> data_encoded<span class="token punctuation">)</span>
    <span class="token keyword">try</span><span class="token operator">:</span>
        r_decoded <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">loads</span><span class="token punctuation">(</span>respond<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
        access_token <span class="token operator">=</span> r_decoded<span class="token punctuation">[</span><span class="token string">'access_token'</span><span class="token punctuation">]</span>
    except KeyError<span class="token operator">:</span>
        <span class="token keyword">return</span> <span class="token string">'[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'</span>
    <span class="token keyword">return</span> access_token



def <span class="token function">search</span><span class="token punctuation">(</span>queryType<span class="token punctuation">,</span>queryStr<span class="token punctuation">,</span><span class="token constant">PAGECOUNT</span><span class="token punctuation">,</span>user<span class="token punctuation">,</span>passwd<span class="token punctuation">)</span><span class="token operator">:</span>
    headers <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'Authorization'</span><span class="token operator">:</span> <span class="token string">'JWT '</span> <span class="token operator">+</span> <span class="token function">Login</span><span class="token punctuation">(</span>user<span class="token punctuation">,</span>passwd<span class="token punctuation">)</span><span class="token punctuation">}</span>
    <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token function">range</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">int</span><span class="token punctuation">(</span><span class="token constant">PAGECOUNT</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">:</span>
        r <span class="token operator">=</span> requests<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>url<span class="token operator">=</span><span class="token string">'https://api.zoomeye.org/'</span><span class="token operator">+</span> queryType <span class="token operator">+</span><span class="token string">'/search?query='</span><span class="token operator">+</span>queryStr<span class="token operator">+</span><span class="token string">'&page='</span><span class="token operator">+</span> <span class="token function">str</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">,</span>
                         headers<span class="token operator">=</span>headers<span class="token punctuation">)</span>
        response <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">loads</span><span class="token punctuation">(</span>r<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
        <span class="token keyword">try</span><span class="token operator">:</span>
            <span class="token keyword">if</span> queryType <span class="token operator">==</span> <span class="token string">"host"</span><span class="token operator">:</span>
                <span class="token keyword">for</span> x <span class="token keyword">in</span> response<span class="token punctuation">[</span><span class="token string">'matches'</span><span class="token punctuation">]</span><span class="token operator">:</span>
                    <span class="token function">print</span><span class="token punctuation">(</span>x<span class="token punctuation">[</span><span class="token string">'ip'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
            <span class="token keyword">if</span> queryType <span class="token operator">==</span> <span class="token string">"web"</span><span class="token operator">:</span>
                <span class="token keyword">for</span> x <span class="token keyword">in</span> response<span class="token punctuation">[</span><span class="token string">'matches'</span><span class="token punctuation">]</span><span class="token operator">:</span>
                    <span class="token function">print</span><span class="token punctuation">(</span>x<span class="token punctuation">[</span><span class="token string">'ip'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
        except KeyError<span class="token operator">:</span>
            <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"[ERROR] No hosts found"</span><span class="token punctuation">)</span>





def <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">:</span>
    <span class="token function">print</span> <span class="token punctuation">(</span><span class="token string">" _____                     _____           ____  "</span>   <span class="token punctuation">)</span>
    <span class="token function">print</span> <span class="token punctuation">(</span><span class="token string">"|__  /___   ___  _ __ ___ | ____|   _  ___/ ___|  ___ __ _ _ __"</span> <span class="token punctuation">)</span>
    <span class="token function">print</span> <span class="token punctuation">(</span><span class="token string">"  / // _ \ / _ \| '_ ` _ \|  _|| | | |/ _ \___ \ / __/ _` | '_ \ "</span><span class="token punctuation">)</span>
    <span class="token function">print</span> <span class="token punctuation">(</span><span class="token string">" / /| (_) | (_) | | | | | | |__| |_| |  __/___) | (_| (_| | | | |"</span><span class="token punctuation">)</span>
    <span class="token function">print</span> <span class="token punctuation">(</span><span class="token string">"/____\___/ \___/|_| |_| |_|_____\__, |\___|____/ \___\__,_|_| |_|"</span><span class="token punctuation">)</span>
    <span class="token function">print</span> <span class="token punctuation">(</span><span class="token string">"                                |___/                            "</span><span class="token punctuation">)</span>
    user <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR USERNAME:'</span><span class="token punctuation">)</span>
    passwd <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR PASSWORD:'</span><span class="token punctuation">)</span>
    <span class="token constant">PAGECOUNT</span> <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR SEARCH_PAGE_COUNT(eg:10):'</span><span class="token punctuation">)</span>
    queryType <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR SEARCH_TYPE(eg:web/host):'</span><span class="token punctuation">)</span>
    queryStr <span class="token operator">=</span> <span class="token function">raw_input</span><span class="token punctuation">(</span><span class="token string">'[-] PLEASE INPUT YOUR KEYWORD(eg:tomcat):'</span><span class="token punctuation">)</span>
    <span class="token function">Login</span><span class="token punctuation">(</span>user<span class="token punctuation">,</span>passwd<span class="token punctuation">)</span>
    <span class="token function">search</span><span class="token punctuation">(</span>queryType<span class="token punctuation">,</span>queryStr<span class="token punctuation">,</span><span class="token constant">PAGECOUNT</span><span class="token punctuation">,</span>user<span class="token punctuation">,</span>passwd<span class="token punctuation">)</span>
<span class="token keyword">if</span> __name__ <span class="token operator">==</span> <span class="token string">'__main__'</span><span class="token operator">:</span>
    <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span>



</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/0a608ce1589b4ce081c6830dac846120.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/9631ad60fa4a485a8f7ecbdbd1168cc3.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p>0x03 ShoDanAPI脚本编写<br> <img src="http://img.e-com-net.com/image/info8/97af4129ed0a45caa680e880cf2d392b.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p>Shodan是互联网上最可怕的搜索引擎。<br> CNNMoney的一篇文章写道,<br> 虽然目前人们都认为谷歌是最强劲的搜索引擎,<br> 但Shodan才是互联网上最可怕的搜索引擎。<br> 与谷歌不同的是,Shodan不是在网上搜索网址,<br> 而是直接进入互联网的背后通道。<br> Shodan可以说是一款“黑暗”谷歌,<br> 一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。<br> 每个月Shodan都会在大约5亿个服务器上日夜不停地搜集信息。<br> Shodan所搜集到的信息是极其惊人的。<br> 凡是链接到互联网的红绿灯、安全摄像头、家庭自动化设备以及加热系统等等都会被轻易的搜索到。<br> Shodan的使用者曾发现过一个水上公园的控制系统,一个加油站,甚至一个酒店的葡萄酒冷却器。</p> 
  <p>而网站的研究者也曾使用Shodan定位到了核电站的指挥和控制系统及一个粒子回旋加速器。</p> 
  <p>Shodan真正值得注意的能力就是能找到几乎所有和互联网相关联的东西。<br> 而Shodan真正的可怕之处就是这些设备几乎都没有安装安全防御措施,其可以随意进入。</p> 
  <p>0x04 简易BaiduURL采集脚本编写</p> 
  <p>0x05 【彩蛋篇】论坛自动签到脚本</p> 
  <p><img src="http://img.e-com-net.com/image/info8/cdfe68b1c9c04839939e1a29c9441dab.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <h6>渗透采集——superl-url</h6> 
  <hr> 
  <hr> 
  <hr> 
  <hr> 
  <p><img src="http://img.e-com-net.com/image/info8/a488a2959e534c03877c4f2a3430bde0.png" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p>https://github.com/super-l/superl-url</p> 
  <p>@ 环境 3.7 python</p> 
  <pre><code> pip install pymysql
 pip install tldextract
 pip install tld==0.7.6       https://pypi.org/project/tld/0.7.6/
 pip install ConfigParser
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/c61de32e95b142898808f97922ca4906.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/1b0d3f3887854411913738f5aeb158d2.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p><img src="http://img.e-com-net.com/image/info8/1c5de9dfaf0d4420808f0aaa47771a84.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/c9c2cf552c3c4074bc2c3cd4218a86a7.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <hr> 
  <hr> 
  <hr> 
  <h2>2 业务 身份认证安全</h2> 
  <h3>2.1 暴力破解</h3> 
  <p>没有验证码限制<br> 或者一次验证码可以多次使用的地方<br> 使用已知用户对密码进行暴力破解<br> 或者用一个通用密码对用户进行暴力破解。<br> 简单的验证码爆破。</p> 
  <p>案列:某药app暴力破解</p> 
  <p>抓包一看请求全是明文的<br> 先从登陆界面开始:<br> <img src="http://img.e-com-net.com/image/info8/20c901827a064ae493ce88de66e2c0b0.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 随便输入几个手机号和密码<br> 返回内容不一样<br> 手机号没有注册过的,返回手机号不存在,手机号注册过的,返回用户名密码错误,<br> 这就好办了,自己构造个手机号字典去刷,如图:<br> <img src="http://img.e-com-net.com/image/info8/600ba78790674ec8aafb2f4edfb26472.jpg" alt="在这里插入图片描述" width="0" height="0"><br> ok,拿到手机号了,<br> 下面就开始暴力破解验证码了,<br> 用自己手机试了下,验证码是4位的,而且请求也是明文的,<br> 接下来暴力破解验证码,<br> 刚开始成功了,但是用这个验证码却登陆不上去,<br> 于是就关了那个爆破结果,后来我静下来想想,想到人家验证码可能是一次有效的,<br> 后来我又刷了一遍,但是可能被发现了,再刷结果返回302了,失败<br> <img src="http://img.e-com-net.com/image/info8/9b46d841f95441a6815b9e00c9f3a3c8.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 于是我发现有个找回密码功能,<br> 也是手机验证码,填上自己自定义的密码,然后获取验证码,抓包</p> 
  <p><img src="http://img.e-com-net.com/image/info8/ebd4710435704df2ab40eb485fef8985.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 继续爆破,这次找到了,<br> 其实暴力破解登陆验证码的时候跟这个一样,只不过我没保存下来,如图:<br> <img src="http://img.e-com-net.com/image/info8/7d1def07f44443bb84cf8d2bccddab8c.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 用我修改的密码登陆,如图:<br> <img src="http://img.e-com-net.com/image/info8/b974efcdd87e453ca8f8c698157eddb8.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 登陆成功</p> 
  <p>总结,这次爆破的跟之前不太一样,<br> 之前的验证码都是用过之后还有效的,这次验证码是一次性的,</p> 
  <p>一些工具及脚本<br> Burpsuite<br> htpwdScan 撞库爆破必备 URL: https://github.com/lijiejie/htpwdScan<br> hydra 源码安装xhydra支持更多的协议去爆破 (可破WEB,其他协议不属于业务安全的范畴)</p> 
  <hr> 
  <hr> 
  <hr> 
  <h3>2.2 Cookie&session</h3> 
  <h4>a.会话固定攻击</h4> 
  <p>利用服务器的session不变机制,借他人之手获得认证和授权,冒充他人。</p> 
  <p>案列:新浪广东美食后台验证逻辑漏洞,直接登录后台,566764名用户资料暴露</p> 
  <p>网站源码可直接下载本地,分析源码可直接登陆后台。<br> 暴露所有用户个人资料,联系方式等,目测用户566764名。</p> 
  <p>用户资料暴露<br> <img src="http://img.e-com-net.com/image/info8/c17d57ec34d34c398f4d0191090a4483.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 566764名用户资料<br> <img src="http://img.e-com-net.com/image/info8/8beb42413d644275983d412dd092e1df.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 直接进入后台<br> <img src="http://img.e-com-net.com/image/info8/24f316f98cd84aa1b6c9efdd7c206aea.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 源码直接下载<br> <img src="http://img.e-com-net.com/image/info8/3ce7fd3e51cf4a758eeecbcf23a10ab9.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 566764名用户资料直接跨后台浏览<br> <img src="http://img.e-com-net.com/image/info8/0b136bb1180c4fd1a42a8e85da189c57.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 修复方案:</p> 
  <p>漏洞较多,不知怎么说起,只列举一项<br> phpsessid会话固定,通过利用此漏洞,攻击者可以进行会话固定攻击。<br> 在一个会话固定攻击,攻击者将用户的会话ID之前,用户甚至登录到目标服务器<br> 从而消除了需要获得用户的会话ID之后。<br> 从php.ini设置session.use_only_cookies = 1。<br> 该选项使管理员能够使他们的用户不会受到攻击涉及在URL传递的会话ID,缺省值为0。</p> 
  <h4>b.Cookie仿冒:</h4> 
  <p>修改cookie中的某个参数可以登录其他用户。</p> 
  <p>案例:益云广告平台任意帐号登录</p> 
  <p>只需要添加cookie<br> yibouid=数字 即可登录任意用户帐号!</p> 
  <p>通过遍历 找到一个官方管理的ID 291<br> 登录<br> <img src="http://img.e-com-net.com/image/info8/309e2d939a4845b1ba3b226f1ff03816.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/200272b3e75f46fbbbd571201e1c857b.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p>修复方案:</p> 
  <p>增强对cookie的验证机制!</p> 
  <h2>3 加密测试</h2> 
  <p>未使用https,是功能测试点,不好利用。<br> 前端加密,用密文去后台校验,并利用smart decode可解。</p> 
  <h2>4 业务一致性安全</h2> 
  <h3>4.1 手机号篡改</h3> 
  <p>抓包修改手机号码参数为其他号码尝试,<br> 例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,<br> 查看是否能查询其他人的业务。</p> 
  <h3>4.2 邮箱和用户名更改</h3> 
  <p>抓包修改用户或者邮箱参数为其他用户或者邮箱</p> 
  <p>案例:绿盟RSAS安全系统全版本通杀权限管理员绕过漏洞,包括最新 RSAS V5.0.13.2</p> 
  <p>RSAS默认的审计员</p> 
  <p>账号是:reporter,auditor<br> 密码是:nsfocus</p> 
  <p>普通账户登陆后<br> 查看版本,为最新V**.<strong>.</strong>.** 版本<br> <img src="http://img.e-com-net.com/image/info8/94b4c9d9f69c4bebaa57377ced4ccf82.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p>然后修改审计员密码,抓包,<br> 将referer处的auditor和post的数据里面的auditor一律修改为admin,<br> 也就是管理员账号,</p> 
  <p>2处修改完后的数据包如下图:<br> <img src="http://img.e-com-net.com/image/info8/e8f40e52290d47d1abfa460ea3006963.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 提交数据后,直接返回给我们超级管理员的密码修改页面,利用逻辑错误直接得到超级权限,如图:<br> <img src="http://img.e-com-net.com/image/info8/95ec97e52f6f40308f034c57c5707af1.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 我们直接在这里修改admin的密码,然后提交即可:<br> <img src="http://img.e-com-net.com/image/info8/ae83478001ed434390fe580998907d40.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 超级管理员登陆<br> <img src="http://img.e-com-net.com/image/info8/37acefc0fb9b4e5286f0a3e0820af7e0.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/ae4188c8e7974d14aa9c6b9d5787c55f.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <h3>4.3 订单ID更改</h3> 
  <p>查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息。</p> 
  <p>案例:广之旅旅行社任意访问用户订单</p> 
  <p>可以任意访问旅客的订单,泄露旅客的敏感信息!</p> 
  <p>用户登陆广之旅官方网站注册登陆<br> http://www.gzl.com.cn/<br> 只要随便假订一张订单,在我的订单里面获得订单号,就能穷举其它订单信息<br> <img src="http://img.e-com-net.com/image/info8/5c4e1ac4e1b744d693e600f80236b576.jpg" alt="在这里插入图片描述" width="0" height="0"><br> http://www.gzl.com.cn/Users/Order/Groups.aspx?OrderId=订单号<br> 该页没过滤权限,相信还有更大的漏洞。</p> 
  <p>修复方案:<br> 对<br> http://www.gzl.com.cn/Users/Order/Groups.aspx<br> 订单页增加过滤</p> 
  <h3>4.4 商品编号更改</h3> 
  <p>例如积分兑换处,<br> 100个积分只能换商品编号为001,<br> 1000个积分只能换商品编号005,<br> 在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品。</p> 
  <p>案例:联想某积分商城支付漏洞再绕过</p> 
  <p>http://ideaclub.lenovo.com.cn/club/index.php?m=goods&c=lists<br> 还是这个积分商城、 看我怎么用最低的积分换最高积分的礼物的~</p> 
  <p>1.我先挑选出我最喜欢的礼物,并复制下goods_id=1419f75d406811e3ae7601beb44c5ff7<br> <img src="http://img.e-com-net.com/image/info8/dac90705e93c4d9082f558fd3d309607.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 2.选择积分最低的礼物兑换(5积分的杯子),并填好相关信息,抓包修改goods_id<br> 替换为1419f75d406811e3ae7601beb44c5ff7<br> <img src="http://img.e-com-net.com/image/info8/01131119e0854d44adecfda9454eb588.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 3.这里显示兑换成功,虽然显示的是被子兑换成功,但是兑换记录里,就不相同了<br> <img src="http://img.e-com-net.com/image/info8/957c0cd8e1de44249b9e2635b93d25d0.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/d8a81d95f65c4970a47ee9a72806f8df.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 到这我们心仪的礼物要30积分,我只花5积分就兑换来了,是不是很划算?</p> 
  <p>修复方案:</p> 
  <p>积分参数还是放后台来操作,有goods_id,在后台计算的时候取出并计算,这样会安全些。</p> 
  <hr> 
  <hr> 
  <hr> 
  <p><img src="http://img.e-com-net.com/image/info8/63dfc5c87b2446e199de38a25775fe74.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/afe20ece0ca74315833ae89635bb2b02.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/f7b2b5ca72c44a499461a73653a90d3c.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/8a518036b694417a82c68d3a7684c07c.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/2ef15dfb5a914d67b99488fc91c5bae0.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/4dfc4a7a3b5a4c9499c195100628e6e2.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/23cd2dbd6adf4a22b1fa926c3f87540c.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/fbdd0336565d488991ffa7518844835a.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p>渗透信息收集–资产探测</p> 
  <h5>python2 knockpy.py www.ycxy.com</h5> 
  <h5>python2 subDomainsBrute.py www.ycxy.com -o 123.txt</h5> 
  <h5>dirsearch.py [-u|–url] target [-e|–extensions] extensions [options]web路径收集与扫描</h5> 
  <h4>实战某大学</h4> 
  <p>信息收集:<br> 来源 url采集<br> inurl:xxx.php 学校</p> 
  <p>注入点批量检测 :枫叶</p> 
  <p>sql注入验证 safe3 注入安全检测<br> 猜解表名 字段名</p> 
  <h4>burpsuite抓包</h4> 
  <ul> 
   <li>浏览器代理<br> proxy 抓包拦截–>intruder<br> clear</li> 
   <li>选中密码 $add</li> 
   <li>选择字典<br> payloads options --> load</li> 
   <li>start attack</li> 
  </ul> 
  <h4>admin权限进后台 getshell(wordpress后台审计)</h4> 
  <h6>插件 -->上传插件zip格式包</h6> 
  <p>上传xxx.zip 内容x.php</p> 
  <ul> 
   <li>原理 源码中自解压 到 /wp-content/upgrade/xxx/x.php</li> 
   <li>配置删除后ban访问</li> 
  </ul> 
  <h3>生成字典</h3> 
  <p>社会工程学 密码生成工具 -猜密码<br> http://www.hacked.com.cn/pass.html<br> <img src="http://img.e-com-net.com/image/info8/c3b3f8c026194f05a32c41d85a98e056.png" alt="在这里插入图片描述" width="0" height="0"><br> 或者自己写一个</p> 
  <h4>开源系统/github泄漏 敏感目录/文件</h4> 
  <ul> 
   <li> <p>后台</p> </li> 
   <li> <p>敏感配置文件<br> eg: wordpress 默认后台 http://xxxx.com/wp-login.php<br> admin<br> <img src="http://img.e-com-net.com/image/info8/700e665223a64779bb862beac2868d2c.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/a0163f0288674dbc8e7257715cc333c7.jpg" alt="在这里插入图片描述" width="0" height="0"></p> </li> 
   <li> <p>历史密码</p> </li> 
   <li> <p>QQ</p> </li> 
   <li> <p>姓名 字母拼写</p> </li> 
   <li> <p>家庭住址</p> </li> 
   <li> <p>学校</p> </li> 
   <li> <p>网站/域名</p> </li> 
   <li> <p>邮件地址</p> </li> 
  </ul> 
  <p><img src="http://img.e-com-net.com/image/info8/fc3ce15db277487f93d314f5ef7eb0b6.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/3d6e797cc3ca45f68d5b76a75b14c66b.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <h5>web渗透 一般步骤 及 实战思路</h5> 
  <ul> 
   <li>1 站长之家 类似 全国测速(ping) 判断有无cdn加速节点<br> <img src="http://img.e-com-net.com/image/info8/77a6bda1f29f4327a2de9e8e5b60eb06.jpg" alt="在这里插入图片描述" width="0" height="0"></li> 
   <li>2 无节点 进行<br> 端口 + 服务器 系统指纹扫描 (从 软件漏洞 和 系统漏洞下手)<br> <img src="http://img.e-com-net.com/image/info8/097539f111d048928b63d27c21480bcb.jpg" alt="在这里插入图片描述" width="0" height="0"></li> 
   <li>3 C段扫描 旁站+ 内网渗透<br> <img src="http://img.e-com-net.com/image/info8/4939d3acf2a742f180e18372c3ea3906.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/fa9cc5dd078440d680da67f2410179cb.jpg" alt="在这里插入图片描述" width="0" height="0"></li> 
  </ul> 
  <h4>2020 .3.16</h4> 
  <ul> 
   <li> <p>没事闲的 逛逛fofa 发现还是 admin 空</p> </li> 
   <li> <p>但是 、、、、<br> <img src="http://img.e-com-net.com/image/info8/8621bc431ce9474abbdfa5c891f58865.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/ed1c3744f8814106b4ce1d4fcfdc48b3.jpg" alt="在这里插入图片描述" width="0" height="0"></p> </li> 
   <li> <p>这是个什么鬼</p> </li> 
   <li> <p>iis + asp <img src="http://img.e-com-net.com/image/info8/28bc74f697484548b4167b693922dd96.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/cbd8236fd08541169aec411af5517af7.jpg" alt="在这里插入图片描述" width="0" height="0"></p> </li> 
   <li> <p>大马试一试</p> </li> 
   <li> <p>老鼠盗洞 一打一个准<br> <img src="http://img.e-com-net.com/image/info8/2bcade62723e4c63981270359d43913e.jpg" alt="在这里插入图片描述" width="0" height="0"></p> </li> 
   <li> <p>已经擦了屁股 删了入口 <img src="http://img.e-com-net.com/image/info8/1c835282754c4518932bd7ecb20a3c22.jpg" alt="在这里插入图片描述" width="0" height="0"></p> </li> 
   <li> <p>逗的是 好像是个人电脑<br> <img src="http://img.e-com-net.com/image/info8/66d57e57422b4b41a1c9f2be2a238914.png" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/25cf607986704275871f7e0268377209.png" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/c9c040243f47438fbb0cf63ad32b266c.png" alt="在这里插入图片描述" width="0" height="0"></p> </li> 
   <li> <p>应该是某某小区的门卫电脑忘记关掉了</p> </li> 
   <li> <p>这个shell 不好用 一句话连一下<br> <img src="http://img.e-com-net.com/image/info8/e22d9ce1c696497498e0a390a01394cf.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/e7705386ff164bda8ad1fd809d3b20a1.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/891f00ebb63e4e0cb75199e231acf01a.png" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/fdd57356e6344bedb1f3247d591f65b1.jpg" alt="在这里插入图片描述" width="0" height="0"><img src="http://img.e-com-net.com/image/info8/8b20bdf4194c4943b57cc0552bb32fef.jpg" alt="在这里插入图片描述" width="0" height="0"></p> </li> 
  </ul> 
  <p><img src="http://img.e-com-net.com/image/info8/cb781041fb064c6a9535606044668cb5.jpg" alt="在这里插入图片描述" width="0" height="0"><br> you haven’t updated sqlmap for more than 440 days!!!<br> <img src="http://img.e-com-net.com/image/info8/3b75f2389b8c480185515b87f90b2cef.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <p><img src="http://img.e-com-net.com/image/info8/af96ef8a6d8f4705b59a9f9d00524627.jpg" alt="在这里插入图片描述" width="0" height="0"><br> <img src="http://img.e-com-net.com/image/info8/e77aa35b85b44cfc9311ebbe6f188a5b.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <hr> 
  <hr> 
  <hr> 
  <p>inurl: http:// tw</p> 
  <hr> 
  <p>中间件</p> 
  <p>Microsoft-IIS</p> 
  <p>版本: 7/7.5</p> 
  <p>fast-CGI运行模式 文件路径/xx.jpg</p> 
  <p>Nginx</p> 
  <p>1.1</p> 
  <p>apache tomcat<br> 文件包含漏洞(CVE-2020-1938)<br> 二、影响范围<br> 受影响版本</p> 
  <p>Apache Tomcat 6<br> Apache Tomcat 7 < 7.0.100<br> Apache Tomcat 8 < 8.5.51<br> Apache Tomcat 9 < 9.0.31<br> 不受影响版本</p> 
  <p>Apache Tomcat = 7.0.100<br> Apache Tomcat = 8.5.51<br> Apache Tomcat = 9.0.31<br> 远程代码执行漏洞(CVE-2019-0232)<br> 远程命令执行漏洞(CVE-2017-12615)<br> 跨站脚本漏洞处理(CVE-2019-0221)</p> 
  <p>apache coyote</p> 
  <hr> 
  <p>.aspx jsp</p> 
  <p>site: 域名</p> 
  <p>多地ping</p> 
  <p>ycxy.com<br> 60.216.8.0/24</p> 
  <p>223.99.192.0/24</p> 
  <p>POST注入 GET注入</p> 
  <p>./dirsearch.py -u http://223.99.192.14:8080/ -e *<br> -u 指定url<br> -e 指定网站语言—— *指全部语言可换php等<br> -w 可以加上自己的字典(带上路径)<br> -r 递归跑(查到一个目录后,在目录后在重复跑,很慢,不建议用)<br> –random-agents 使用代理(使用的代理目录在uesr-agents.txt中,可以自己添加)</p> 
  <p>5webdav 漏洞<br> cadaver是WEBDAV的 客户端<br> DAVTest</p> 
  <p>2021 hw 0day</p> 
  <p>暴力穷举破解<br> XSS跨站伪造请求<br> sql注入 sql-inject<br> RCE<br> 文件包含<br> 文件下载<br> 文件上传<br> 越权访问<br> 目录遍历<br> 敏感信息泄露<br> PHP反序列化<br> XXE<br> url重定向<br> SSRF<br> waf绕过<br> CRLF</p> 
  <p>sql插入<br> insert into test(name,second) values(null,null)</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1759477437030281216"></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/1773525411561537536.htm"
                           title="用XMLHttpRequest发送和接收JSON数据" target="_blank">用XMLHttpRequest发送和接收JSON数据</a>
                        <span class="text-muted">潭池先生</span>
<a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/XMLHttpRequest/1.htm">XMLHttpRequest</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>百度的AI回答了一个案例:varxhr=newXMLHttpRequest();varurl="your_endpoint_url";//替换为你的API端点vardata=JSON.stringify({key1:"value1",key2:"value2"});xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type","appl</div>
                    </li>
                    <li><a href="/article/1773512347332182016.htm"
                           title="直返APP所属的公司是何时成立的?它的发展历程和业务范围" target="_blank">直返APP所属的公司是何时成立的?它的发展历程和业务范围</a>
                        <span class="text-muted">好项目高省</span>

                        <div>直返APP为我们带来了返利购物的便利,那么这款APP所属的公司是如何成立的呢?它的背后又有怎样的发展历程和业务范围呢?让我们一起探寻。【高省】APP(高佣金领导者)是一个自用省钱佣金高,分享推广赚钱多的平台,百度有几百万篇报道,运行三年,稳定可靠。高省APP,是2021年推出的平台,0投资,0风险、高省APP佣金更高,模式更好,终端用户不流失。高省是公认的返利最高的软件。古楼导师高省邀请码5558</div>
                    </li>
                    <li><a href="/article/1773504513622212608.htm"
                           title="大前端-postcss安装使用指南" target="_blank">大前端-postcss安装使用指南</a>
                        <span class="text-muted">黑夜照亮前行的路</span>
<a class="tag" taget="_blank" href="/search/postcss/1.htm">postcss</a>
                        <div>PostCSS是一款强大的CSS处理工具,可以用来自动添加浏览器前缀、代码合并、代码压缩等,提升代码的可读性,并支持使用最新的CSS语法。以下是一份简化的PostCSS安装使用指南:一、安装PostCSS在你的项目目录中,通过npm(NodePackageManager)来安装PostCSS。打开命令行窗口,输入以下命令:bash复制代码npminstallpostcss--save-dev这将把</div>
                    </li>
                    <li><a href="/article/1773504261557125120.htm"
                           title="谷歌浏览器驱动Chromedriver(114-120版本)文件以及驱动下载教程" target="_blank">谷歌浏览器驱动Chromedriver(114-120版本)文件以及驱动下载教程</a>
                        <span class="text-muted">pigerr杨</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/drivers/1.htm">drivers</a>
                        <div>ChromeDriver官方网站GitHub||GoogleChromeLabs/chrome-for-testingChromeDriver113-125_JSONChromeforTestingavailability123-125zip白月黑羽Python基础|进阶|Qt图形界面|Django|自动化测试|性能测试|JS语言|JS前端|原理与安装</div>
                    </li>
                    <li><a href="/article/1773501994674225152.htm"
                           title="虚拟 DOM 的优缺点有哪些" target="_blank">虚拟 DOM 的优缺点有哪些</a>
                        <span class="text-muted">咕噜签名分发</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>虚拟DOM(VirtualDOM)技术作为现代前端开发中的重要组成部分,已经成为了众多流行前端框架的核心特性。它的引入为前端开发带来了诸多优势,同时也需要我们认真思考其潜在的考量。下面简单的介绍一下虚拟DOM技术的优势与缺点,深入探讨其在实际应用中的影响。提升性能虚拟DOM的最大优势之一是提升页面性能。通过比较前后两次虚拟DOM树的差异,最小化实际DOM操作,从而减少页面重渲染时的性能消耗。这种优</div>
                    </li>
                    <li><a href="/article/1773495574226599936.htm"
                           title="3、JavaWeb-Ajax/Axios-前端工程化-Element" target="_blank">3、JavaWeb-Ajax/Axios-前端工程化-Element</a>
                        <span class="text-muted">所谓远行Misnearch</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/JavaWeb/1.htm">JavaWeb</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/elementui/1.htm">elementui</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a>
                        <div>P34Ajax介绍Ajax:AsynchroousJavaScriptAndXML,异步的JS和XMLJS网页动作,XML一种标记语言,存储数据,作用:数据交换:通过Ajax给服务器发送请求,并获取服务器响应的数据异步交互:在不重新加载整个页面的情况下,与服务器交换数据并实现更新部分网页的技术,例如:搜索联想、用户名是否可用的校验等等。同步与异步:同步:服务器在处理中客户端要处于等待状态,输入域名</div>
                    </li>
                    <li><a href="/article/1773451833642123264.htm"
                           title="上班族适合兼职的副业有哪些?分享五个适合上班族做的副业" target="_blank">上班族适合兼职的副业有哪些?分享五个适合上班族做的副业</a>
                        <span class="text-muted">高省张导师</span>

                        <div>对于许多上班族来说,除了日常工作外,还有大量的空闲时间,因此兼职成为了一项非常普遍的选择。下面将向您介绍五个不错的兼职副业,每个兼职都可以很容易地从家中启动,同时也是一个短期见效的方式,可以让您很快增加收入。大家好,我是高省APP最大团队,【高省】是一个可省钱佣金高,能赚钱有收益的平台,百度有几百万篇报道,也期待你的加入。高省邀请码520888,注册送2皇冠会员,送万元推广大礼包。1、社交导购电商</div>
                    </li>
                    <li><a href="/article/1773408347479932928.htm"
                           title="直返APP是由哪个团队开发的?这个团队有哪些特点和优势?" target="_blank">直返APP是由哪个团队开发的?这个团队有哪些特点和优势?</a>
                        <span class="text-muted">日常购物技巧呀</span>

                        <div>关于直返的创始人以及直返APP属于哪个公司,目前没有确切的公开信息。不过,一些网友认为,直返这种商业模式可能由多个不同的公司或团队所创造和运营。【高省】APP(高佣金领导者)是一个自用省钱佣金高,分享推广赚钱多的平台,百度有几百万篇报道,运行三年,稳定可靠。高省APP,是2021年推出的平台,0投资,0风险、高省APP佣金更高,模式更好,终端用户不流失。高省是公认的返利最高的软件。古楼导师高省邀请</div>
                    </li>
                    <li><a href="/article/1773382031552610304.htm"
                           title="java实体中返回前端的double类型四舍五入(格式化)" target="_blank">java实体中返回前端的double类型四舍五入(格式化)</a>
                        <span class="text-muted">婲落ヽ紅顏誶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>根据业务,需要通过后端给前端返回部分double类型的数值,一般需要保留两位小数,使用jackson转换对象packagecom.ruoyi.common.core.config;importcom.fasterxml.jackson.core.JsonGenerator;importcom.fasterxml.jackson.databind.JsonSerializer;importcom.f</div>
                    </li>
                    <li><a href="/article/1773360885226602496.htm"
                           title="Django forms组件" target="_blank">Django forms组件</a>
                        <span class="text-muted">在飞行-米龙</span>
<a class="tag" taget="_blank" href="/search/Django/1.htm">Django</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>【一】引入【1】实现登陆验证功能(1)需求分析登陆验证需要前后端交互,采用form表单提交数据对数据进行校验用户名必须以英文大写字母开头密码必须大于三位数反馈给用户错误的信息除了反馈错误的信息还有保留原始输入内容(2)后端代码使用user_info_dict字典每次刷新存储存储前端发送的信息存储后端进行验证的信息defhome(request):#每次后刷新这个信息字典user_info_dict</div>
                    </li>
                    <li><a href="/article/1773343638902865920.htm"
                           title="Python+Requests模拟发送GET请求" target="_blank">Python+Requests模拟发送GET请求</a>
                        <span class="text-muted">爱学习的执念</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/1.htm">技术分享</a><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>模拟发送GET请求前置条件:导入requests库一、发送不带参数的get请求代码如下:以百度首页为例importrequests#发送get请求response=requests.get(url="http://www.baidu.com")print(response.content.decode("utf-8"))#以utf-8的编码输出内容二、发送带参数的get请求发送带参数的get请求有</div>
                    </li>
                    <li><a href="/article/1773308900838277120.htm"
                           title="Web前端Html的表单" target="_blank">Web前端Html的表单</a>
                        <span class="text-muted">任家伟</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a>
                        <div>表单的关键字:form标签表示一个表单区域action=“后端地址”method=“提交数据方式:get/post”input单行输入框type=“text”文本name=“定义名称名字自定义”向后端提交的键readonly=“readonly”只读,不可修改,但是可以提交disabled=“disabled”禁用组件不可修改,不能提交type=“password”密码框type=“radio”单</div>
                    </li>
                    <li><a href="/article/1773279695408791552.htm"
                           title="Thinkphp - 详细实现网站系统登录功能,附带 Mysql 数据库设置、Web 前端展示界面、信息校验等(详细代码,即设计过程)" target="_blank">Thinkphp - 详细实现网站系统登录功能,附带 Mysql 数据库设置、Web 前端展示界面、信息校验等(详细代码,即设计过程)</a>
                        <span class="text-muted">王佳斌</span>
<a class="tag" taget="_blank" href="/search/%2B/1.htm">+</a><a class="tag" taget="_blank" href="/search/Thinkphp/1.htm">Thinkphp</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>前言登录功能,是我们几乎开发每个系统都必须的模块。登录功能设计思路,主要包括几个方面。用户输入网址展示登录页面用户输入用户名,密码等点击登录进行信息校验校验通过之后,记录用户登录信息,跳转指定页面用户校验失败,提示失败信息页面目录具体功能实现为了快速搭建可用、美观的页面,我们采用一个比较成熟的前端框架Bootstrap。下面我们到Bootstrap的官网Bootsrap官网下载bootstrap。</div>
                    </li>
                    <li><a href="/article/1773278184146534400.htm"
                           title="罗永浩将首度直播卖“云”;武汉大学回应开设雷军班;.NET 7自5月14日起将不被支持 | 极客头条" target="_blank">罗永浩将首度直播卖“云”;武汉大学回应开设雷军班;.NET 7自5月14日起将不被支持 | 极客头条</a>
                        <span class="text-muted">极客日报</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a>
                        <div>「极客头条」——技术人员的新闻圈!CSDN的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。整理|苏宓出品|CSDN(ID:CSDNnews)一分钟速览新闻点!90后华为「天才少年」稚晖君又获新融资百度智能云推出大模型应用全家桶,7款产品全新升级武汉大学回应开设雷军班:招15人,本博贯通知情人士辟谣腾讯大规模裁员罗永浩将首度直播卖“云”联发科携手阿里云,天玑930</div>
                    </li>
                    <li><a href="/article/1772795036136701952.htm"
                           title="程序员开发技术整理" target="_blank">程序员开发技术整理</a>
                        <span class="text-muted">laizhixue</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a>
                        <div>前端技术:vue-前端框架element-前端框架bootstrap-前端框架echarts-图标组件C#后端技术:webservice:soap架构:简单的通信协议,用于服务通信ORM框架:对象关系映射,如EF:对象实体模型,是ado.net中的应用技术soap服务通讯:xml通讯ado.net:OAuth2:登录授权认证:Token认证:JWT:jsonwebtokenJava后端技术:便捷工</div>
                    </li>
                    <li><a href="/article/1772773132000624640.htm"
                           title="【前端学习——js篇】7.函数缓存" target="_blank">【前端学习——js篇】7.函数缓存</a>
                        <span class="text-muted">笔下无竹墨下有鱼</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/1.htm">前端学习</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/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/javascript/1.htm">javascript</a>
                        <div>具体见:https://github.com/febobo/web-interview7.函数缓存函数缓存,就是将函数运算过的结果进行缓存本质上就是用空间(缓存存储)换时间(计算过程)常用于缓存数据计算结果和缓存对象。其实现主要通过闭包、柯里化和高阶函数。下面主要介绍下柯里化:①柯里化柯里化(currying)是一种函数式编程的概念,指的是将一个带有多个参数的函数转换成一系列只接受一个参数的函数的</div>
                    </li>
                    <li><a href="/article/1772673815097180160.htm"
                           title="Websocket服务监听收发消息" target="_blank">Websocket服务监听收发消息</a>
                        <span class="text-muted">beiback</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98/1.htm">服务器问题</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>目录1.pom依赖坐标2.项目配置端口和项目包名2.创建处理器3.注册处理器4.前端页面1.pom依赖坐标org.springframework.bootspring-boot-starter-websocket2.项目配置端口和项目包名application.propertiesserver.port=8088//路径规范:为应用的所有servlet提供一个统一的前缀,使URL结构更加清晰和一致</div>
                    </li>
                    <li><a href="/article/1772673816238030848.htm"
                           title="Netty服务器结合WebSocke协议监听和接收数据" target="_blank">Netty服务器结合WebSocke协议监听和接收数据</a>
                        <span class="text-muted">beiback</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98/1.htm">服务器问题</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</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/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                        <div>目录1.pom依赖2.配置属性3.创建netty服务器4.建立监听和响应5.创建启动器6.前端static下页面7.前端js8.注意异常问题9.创建netty服务器--使用守护线程1.pom依赖io.nettynetty-all4.1.86.Final2.配置属性application.properties#启动端口server.port=8088server.servlet.context-pa</div>
                    </li>
                    <li><a href="/article/1772654174425645056.htm"
                           title="基于SSM+Vue企业销售培训系统 企业人才培训系统 企业课程培训管理系统 企业文化培训班系统Java" target="_blank">基于SSM+Vue企业销售培训系统 企业人才培训系统 企业课程培训管理系统 企业文化培训班系统Java</a>
                        <span class="text-muted">计算机程序老哥</span>

                        <div>作者主页:计算机毕业设计老哥有问题可以主页问我一、开发介绍1.1开发环境开发语言:Java数据库:MySQL系统架构:B/S后端:SSM(Spring+SpringMVC+Mybatis)前端:Vue工具:IDEA或者Eclipse,JDK1.8,Maven二、系统介绍2.1图片展示注册登录页面:登陆.png前端页面功能:首页、培训班、在线学习、企业文化、交流论坛、试卷列表、系统公告、留言反馈、个</div>
                    </li>
                    <li><a href="/article/1772640434649104384.htm"
                           title="京东特价版是什么意思?有哪些模块?" target="_blank">京东特价版是什么意思?有哪些模块?</a>
                        <span class="text-muted">高省APP</span>

                        <div>京东平台有推出京东特价版,类似于淘宝平台推出的淘宝特价版,大家可以在京东特价版买到想要的产品,大家知道京东特价版是什么意思吗?下面为大家进行相关的解答。高省APP(帮朋友一起省)佣金更高,模式更好,终端用户不流失。【高省】是一个自用省钱佣金高,分享推广赚钱多的平台,百度有几百万篇报道,也期待你的加入。高省邀请码518518,注册送2皇冠会员,送万元推广大礼包,教你如何1年做到百万团队。京东特价版是</div>
                    </li>
                    <li><a href="/article/1772639322093191168.htm"
                           title="今年一半以上新增财富来自AI;微软任命Windows和Surface新负责人;GitHub推出代码自动修复工具 | 极客头条" target="_blank">今年一半以上新增财富来自AI;微软任命Windows和Surface新负责人;GitHub推出代码自动修复工具 | 极客头条</a>
                        <span class="text-muted">极客日报</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/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a>
                        <div>「极客头条」——技术人员的新闻圈!CSDN的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。整理|苏宓出品|CSDN(ID:CSDNnews)一分钟速览新闻点!字节提速AI:Flow部门下设四大业务线,挖角大批百度阿里员工小米汽车App上线苹果AppStore:可在线购车、远程车控原海思总裁徐文伟官宣退休:1991年加入华为阿里1688全面接入淘宝:将设立专门频道</div>
                    </li>
                    <li><a href="/article/1772631263593693184.htm"
                           title="javascript实现SM2加密解密" target="_blank">javascript实现SM2加密解密</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/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a>
                        <div>前提JavaWeb环境前端代码window.sm2=function(t){functioni(e){if(r[e])returnr[e].exports;varn=r[e]={i:e,l:!1,exports:{}};returnt[e].call(n.exports,n,n.exports,i),n.l=!0,n.exports}varr={};returni.m=t,i.c=r,i.d=fu</div>
                    </li>
                    <li><a href="/article/1772547160227774464.htm"
                           title="百度云盘失效的文件" target="_blank">百度云盘失效的文件</a>
                        <span class="text-muted">小风xf</span>

                        <div>很长一段时间都发现自己的资源被冠以“啊哦,你来晚了,分享的文件已经被取消了,下次要早点哟。”这样的页面,但是我在网盘里却发现自己的文件还在,越来越觉得这是百度的一种策略,毕竟树大招风,所以他们打着无限制分享的旗号,背地里悄悄搞个小手段,这样既躲开了相关部门,又能让资源分享者经常去维护。好吧,以上言语仅为YY,但是如果资源在,我们就一定有办法找到的,譬如下面这个办法,只要稍稍动手,就能让资源起死回生</div>
                    </li>
                    <li><a href="/article/1772541266194661376.htm"
                           title="前端埋点解决方案" target="_blank">前端埋点解决方案</a>
                        <span class="text-muted">zhu_zhu_xia</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>一、前言:基于神策数据的前端埋点解决方案JavaScript快速使用·神策分析使用手册[预览版]二、sdkgitlab下载地址https://github.com/sensorsdata/sa-sdk-javascript/releases或者npm安装npmisa-sdk-javascript三、入门3.1接入sdk以及配置(version1.17.2),入口文件接入sdk以及添加配置(func</div>
                    </li>
                    <li><a href="/article/1772452214367911936.htm"
                           title="百度网盘cps分销佣金玩法揭秘!网盘联盟分销赚钱方法!" target="_blank">百度网盘cps分销佣金玩法揭秘!网盘联盟分销赚钱方法!</a>
                        <span class="text-muted">高省浮沉000018</span>

                        <div>在百度网盘联盟目前有3种赚钱方式,第一种是自己售卡赚佣金;第二种是外链分享(分销联盟);第三种是邀请好友加盟,好友售卡,自己得提成收入。在下面,我将为大家带来详细的加入教程、赚钱经验、三种不同的赚钱方式讲解、以及各种规则。该文章内容可能较长,大家耐心观看别忘了点个赞哟。怎么加入(盘主申请入口在哪)答案:通过微信扫二维码加入(完全免费)扫二维码入口:加入步骤1.首先,我们在上方使用微信扫描二维码,然</div>
                    </li>
                    <li><a href="/article/1772399131164213248.htm"
                           title="如何提出令人爱回答的好问题?" target="_blank">如何提出令人爱回答的好问题?</a>
                        <span class="text-muted">兮若耶</span>

                        <div>我们经常会遇到这样的问题,如我适合做什么?这个名词怎么解释?大部分人面对这样的问题时,要么答非所问,要么无从下手。现在的很多事物都是速成的,只是好的问题并没有那么容易被提出来。而提不好的问题,可能会拿不到想要的信息等等。所以提出一个好问题很重要。01提问的功能我们参加各种聚会、会议时,能听到很多的比喻和新观点,而这些是在书上和网上找不到的。这些新的有用的东西,都在前端被实践着,暂时来不及把知识系统</div>
                    </li>
                    <li><a href="/article/1772378002940821504.htm"
                           title="谈谈对前端性能监控的理解和实践" target="_blank">谈谈对前端性能监控的理解和实践</a>
                        <span class="text-muted">Layla_c</span>
<a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/jave/1.htm">jave</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>一、谈谈对前端性能监控的理解和实践前端性能监控是确保网页或应用高效、稳定运行的关键环节,它涉及对前端页面加载速度、资源消耗、错误率等指标的实时监控和预警。通过前端性能监控,开发者和运维团队能够及时发现并解决性能瓶颈,从而提升用户体验和系统稳定性。理解前端性能监控,首先要明确其重要性。在移动互联网时代,用户对网页和应用的响应速度有着极高的要求。如果页面加载缓慢或出现卡顿,用户可能会选择离开,这对企业</div>
                    </li>
                    <li><a href="/article/1772365540988354560.htm"
                           title="mineadmin使用docker启动方式" target="_blank">mineadmin使用docker启动方式</a>
                        <span class="text-muted">qq_38812523</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
                        <div>找个目录,git下来mineadmin代码,在根目录,创建文件名docker-compose.yml然后复制下面代码version:'3'services:#首先下载前端,https://gitee.com/mineadmin/mineadmin-vue#在后端根目录建立mine-ui目录,把前端文件复制过来。#容器内访问宿主机的地址用:host.docker.internal#宿主机也可以在ho</div>
                    </li>
                    <li><a href="/article/1772335078576291840.htm"
                           title="为什么需要使用版本控制工具(如Git)?它如何帮助管理前端开发项目?" target="_blank">为什么需要使用版本控制工具(如Git)?它如何帮助管理前端开发项目?</a>
                        <span class="text-muted">智伴科技</span>
<a class="tag" taget="_blank" href="/search/git/1.htm">git</a>
                        <div>版本控制工具(如Git)在前端开发项目中扮演着重要的角色,主要有以下几方面的作用:1.**版本管理**:版本控制工具可以帮助开发团队管理项目的不同版本,记录每次代码变动的历史记录,方便追踪和回溯。开发人员可以通过版本控制工具轻松地查看、对比和恢复以前的版本。2.**协同合作**:多人开发同一个项目时,版本控制工具可以协助团队成员协同工作,避免代码冲突、重复工作和混乱。开发人员可以通过版本控制工具共</div>
                    </li>
                    <li><a href="/article/1772307893329133568.htm"
                           title="低代码与前端开发架构:重塑软件开发的未来" target="_blank">低代码与前端开发架构:重塑软件开发的未来</a>
                        <span class="text-muted">快乐非自愿</span>
<a class="tag" taget="_blank" href="/search/%E4%BD%8E%E4%BB%A3%E7%A0%81/1.htm">低代码</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>随着技术的不断进步和数字化转型的深入,软件开发领域正经历着一场革命性的变革。在这场变革中,低代码开发平台和前端开发架构扮演着越来越重要的角色。本文将探讨低代码与前端开发架构之间的关系,并分析它们如何共同推动软件开发的创新与发展。低代码开发平台的崛起低代码开发平台(Low-CodeDevelopmentPlatform,LCDP)是一种新型的软件开发方式,它允许开发者通过图形化界面、预构建的模块和模</div>
                    </li>
                                <li><a href="/article/33.htm"
                                       title="Spring的注解积累" target="_blank">Spring的注解积累</a>
                                    <span class="text-muted">yijiesuifeng</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E6%B3%A8%E8%A7%A3/1.htm">注解</a>
                                    <div>用注解来向Spring容器注册Bean。 
  
需要在applicationContext.xml中注册: 
<context:component-scan base-package=”pagkage1[,pagkage2,…,pagkageN]”/>。 
如:在base-package指明一个包    
<context:component-sc</div>
                                </li>
                                <li><a href="/article/160.htm"
                                       title="传感器" target="_blank">传感器</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/%E4%BC%A0%E6%84%9F%E5%99%A8/1.htm">传感器</a>
                                    <div>android传感器的作用主要就是来获取数据,根据得到的数据来触发某种事件 
  
下面就以重力传感器为例; 
  
1,在onCreate中获得传感器服务 
  
private SensorManager sm;// 获得系统的服务
	private Sensor sensor;// 创建传感器实例

	@Override
	protected void </div>
                                </li>
                                <li><a href="/article/287.htm"
                                       title="[光磁与探测]金吕玉衣的意义" target="_blank">[光磁与探测]金吕玉衣的意义</a>
                                    <span class="text-muted">comsci</span>

                                    <div>      这是一个古代人的秘密:现在告诉大家 
 
      信不信由你们: 
 
      穿上金律玉衣的人,如果处于灵魂出窍的状态,可以飞到宇宙中去看星星 
 
      这就是为什么古代</div>
                                </li>
                                <li><a href="/article/414.htm"
                                       title="精简的反序打印某个数" target="_blank">精简的反序打印某个数</a>
                                    <span class="text-muted">沐刃青蛟</span>
<a class="tag" taget="_blank" href="/search/%E6%89%93%E5%8D%B0/1.htm">打印</a>
                                    <div>以前看到一些让求反序打印某个数的程序。 
比如:输入123,输出321。 
  
记得以前是告诉你是几位数的,当时就抓耳挠腮,完全没有思路。 
  
似乎最后是用到%和/方法解决的。 
  
而今突然想到一个简短的方法,就可以实现任意位数的反序打印(但是如果是首位数或者尾位数为0时就没有打印出来了) 
  
代码如下: 
	long num, num1=0;</div>
                                </li>
                                <li><a href="/article/541.htm"
                                       title="PHP:6种方法获取文件的扩展名" target="_blank">PHP:6种方法获取文件的扩展名</a>
                                    <span class="text-muted">IT独行者</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%89%A9%E5%B1%95%E5%90%8D/1.htm">扩展名</a>
                                    <div>  
PHP:6种方法获取文件的扩展名 
  
1、字符串查找和截取的方法 
       1      
$extension 
= 
substr 
( 
strrchr 
( 
$file 
,  
'.' 
), 1);       
2、字符串查找和截取的方法二 
       1      
$extension 
= 
substr </div>
                                </li>
                                <li><a href="/article/668.htm"
                                       title="面试111" target="_blank">面试111</a>
                                    <span class="text-muted">文强chu</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                                    <div> 1事务隔离级别有那些 ,事务特性是什么(问到一次)
 2 spring aop 如何管理事务的,如何实现的。动态代理如何实现,jdk怎么实现动态代理的,ioc是怎么实现的,spring是单例还是多例,有那些初始化bean的方式,各有什么区别(经常问)
 3 struts默认提供了那些拦截器 (一次)
 4 过滤器和拦截器的区别 (频率也挺高)
 5 final,finally final</div>
                                </li>
                                <li><a href="/article/795.htm"
                                       title="XML的四种解析方式" target="_blank">XML的四种解析方式</a>
                                    <span class="text-muted">小桔子</span>
<a class="tag" taget="_blank" href="/search/dom/1.htm">dom</a><a class="tag" taget="_blank" href="/search/jdom/1.htm">jdom</a><a class="tag" taget="_blank" href="/search/dom4j/1.htm">dom4j</a><a class="tag" taget="_blank" href="/search/sax/1.htm">sax</a>
                                    <div>在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的(至少我认为)。   预 备   测试环境:   AMD 毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server </div>
                                </li>
                                <li><a href="/article/922.htm"
                                       title="wordpress中常见的操作" target="_blank">wordpress中常见的操作</a>
                                    <span class="text-muted">aichenglong</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%AD%E6%96%87%E6%B3%A8%E5%86%8C/1.htm">中文注册</a><a class="tag" taget="_blank" href="/search/wordpress/1.htm">wordpress</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E9%99%A4%E8%8F%9C%E5%8D%95/1.htm">移除菜单</a>
                                    <div>1 wordpress中使用中文名注册解决办法 
  1)使用插件 
  2)修改wp源代码 
     进入到wp-include/formatting.php文件中找到 
      function sanitize_user( $username, $strict = false </div>
                                </li>
                                <li><a href="/article/1049.htm"
                                       title="小飞飞学管理-1" target="_blank">小飞飞学管理-1</a>
                                    <span class="text-muted">alafqq</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%A1%E7%90%86/1.htm">管理</a>
                                    <div>项目管理的下午题,其实就在提出问题(挑刺),分析问题,解决问题。 
今天我随意看下10年上半年的第一题。主要就是项目经理的提拨和培养。 
结合我自己经历写下心得 
 
对于公司选拔和培养项目经理的制度有什么毛病呢? 
1,公司考察,选拔项目经理,只关注技术能力,而很少或没有关注管理方面的经验,能力。 
2,公司对项目经理缺乏必要的项目管理知识和技能方面的培训。 
3,公司对项目经理的工作缺乏进行指</div>
                                </li>
                                <li><a href="/article/1176.htm"
                                       title="IO输入输出部分探讨" target="_blank">IO输入输出部分探讨</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/IO/1.htm">IO</a>
                                    <div> 
 //文件处理  在处理文件输入输出时要引入java.IO这个包; 
/* 
1,运用File类对文件目录和属性进行操作 
2,理解流,理解输入输出流的概念 
3,使用字节/符流对文件进行读/写操作 
4,了解标准的I/O 
5,了解对象序列化 
*/ 
  
//1,运用File类对文件目录和属性进行操作 
  
//在工程中线创建一个text.txt</div>
                                </li>
                                <li><a href="/article/1303.htm"
                                       title="getElementById的用法" target="_blank">getElementById的用法</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/element/1.htm">element</a>
                                    <div>        getElementById是通过Id来设置/返回HTML标签的属性及调用其事件与方法。用这个方法基本上可以控制页面所有标签,条件很简单,就是给每个标签分配一个ID号。 
       返回具有指定ID属性值的第一个对象的一个引用。 
       语法: 
&n</div>
                                </li>
                                <li><a href="/article/1430.htm"
                                       title="励志经典语录" target="_blank">励志经典语录</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E5%8A%B1%E5%BF%97/1.htm">励志</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E7%94%9F/1.htm">人生</a>
                                    <div>经典语录1:  
  哈佛有一个著名的理论:人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。每晚抽出2个小时的时间用来阅读、进修、思考或参加有意的演讲、讨论,你会发现,你的人生正在发生改变,坚持数年之后,成功会向你招手。不要每天抱着QQ/MSN/游戏/电影/肥皂剧……奋斗到12点都舍不得休息,看就看一些励志的影视或者文章,不要当作消遣;学会思考人生,学会感悟人生</div>
                                </li>
                                <li><a href="/article/1557.htm"
                                       title="[MongoDB学习笔记三]MongoDB分片" target="_blank">[MongoDB学习笔记三]MongoDB分片</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a>
                                    <div>MongoDB的副本集(Replica Set)一方面解决了数据的备份和数据的可靠性问题,另一方面也提升了数据的读写性能。MongoDB分片(Sharding)则解决了数据的扩容问题,MongoDB作为云计算时代的分布式数据库,大容量数据存储,高效并发的数据存取,自动容错等是MongoDB的关键指标。 
本篇介绍MongoDB的切片(Sharding) 
  1.何时需要分片 
&nbs</div>
                                </li>
                                <li><a href="/article/1684.htm"
                                       title="【Spark八十三】BlockManager在Spark中的使用场景" target="_blank">【Spark八十三】BlockManager在Spark中的使用场景</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/manager/1.htm">manager</a>
                                    <div>1. Broadcast变量的存储,在HttpBroadcast类中可以知道 
2. RDD通过CacheManager存储RDD中的数据,CacheManager也是通过BlockManager进行存储的 
3. ShuffleMapTask得到的结果数据,是通过FileShuffleBlockManager进行管理的,而FileShuffleBlockManager最终也是使用BlockMan</div>
                                </li>
                                <li><a href="/article/1811.htm"
                                       title="yum方式部署zabbix" target="_blank">yum方式部署zabbix</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/yum%E6%96%B9%E5%BC%8F%E9%83%A8%E7%BD%B2zabbix/1.htm">yum方式部署zabbix</a>
                                    <div>安装网络yum库#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 通过yum装mysql和zabbix调用的插件还有agent代理#yum install zabbix-server-mysql zabbix-web-mysql mysql-</div>
                                </li>
                                <li><a href="/article/1938.htm"
                                       title="Hibernate4和MySQL5.5自动创建表失败问题解决方法" target="_blank">Hibernate4和MySQL5.5自动创建表失败问题解决方法</a>
                                    <span class="text-muted">byalias</span>
<a class="tag" taget="_blank" href="/search/J2EE/1.htm">J2EE</a><a class="tag" taget="_blank" href="/search/Hibernate4/1.htm">Hibernate4</a>
                                    <div>今天初学Hibernate4,了解了使用Hibernate的过程。大体分为4个步骤: 
①创建hibernate.cfg.xml文件 
②创建持久化对象 
③创建*.hbm.xml映射文件 
④编写hibernate相应代码 
在第四步中,进行了单元测试,测试预期结果是hibernate自动帮助在数据库中创建数据表,结果JUnit单元测试没有问题,在控制台打印了创建数据表的SQL语句,但在数据库中</div>
                                </li>
                                <li><a href="/article/2065.htm"
                                       title="Netty源码学习-FrameDecoder" target="_blank">Netty源码学习-FrameDecoder</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                                    <div>Netty 3.x的user guide里FrameDecoder的例子,有几个疑问: 
 1.文档说:FrameDecoder calls decode method with an internally maintained cumulative buffer whenever new data is received. 
 为什么每次有新数据到达时,都会调用decode方法? 
 2.Dec</div>
                                </li>
                                <li><a href="/article/2192.htm"
                                       title="SQL行列转换方法" target="_blank">SQL行列转换方法</a>
                                    <span class="text-muted">chicony</span>
<a class="tag" taget="_blank" href="/search/%E8%A1%8C%E5%88%97%E8%BD%AC%E6%8D%A2/1.htm">行列转换</a>
                                    <div>  
  
create table tb(终端名称 varchar(10) , CEI分值 varchar(10) , 终端数量 int) 
insert into tb values('三星' , '0-5' , 74) 
insert into tb values('三星' , '10-15' , 83) 
insert into tb values('苹果' , '0-5' , 93) 
</div>
                                </li>
                                <li><a href="/article/2319.htm"
                                       title="中文编码测试" target="_blank">中文编码测试</a>
                                    <span class="text-muted">ctrain</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81/1.htm">编码</a>
                                    <div>循环打印转换编码 
 

String[] codes = {
    "iso-8859-1",
    "utf-8",
    "gbk",
    "unicode"
};

for (int i = 0; i < codes.length; i++) {
    for (int j </div>
                                </li>
                                <li><a href="/article/2446.htm"
                                       title="hive 客户端查询报堆内存溢出解决方法" target="_blank">hive 客户端查询报堆内存溢出解决方法</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E5%A0%86%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA/1.htm">堆内存溢出</a>
                                    <div>hive> select * from t_test where ds=20150323 limit 2; 
OK 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
  
问题原因: hive堆内存默认为256M 
  
这个问题的解决方法为: 
修改/us</div>
                                </li>
                                <li><a href="/article/2573.htm"
                                       title="人有多大懒,才有多大闲 (评论『卓有成效的程序员』)" target="_blank">人有多大懒,才有多大闲 (评论『卓有成效的程序员』)</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>  
卓有成效的程序员给我的震撼很大,程序员作为特殊的群体,有的人可以这么懒,  懒到事情都交给机器去做 ,而有的人又可以那么勤奋,每天都孜孜不倦得做着重复单调的工作。 
  
在看这本书之前,我属于勤奋的人,而看完这本书以后,我要努力变成懒惰的人。 
不要在去庞大的开始菜单里面一项一项搜索自己的应用程序,也不要在自己的桌面上放置眼花缭乱的快捷图标</div>
                                </li>
                                <li><a href="/article/2700.htm"
                                       title="Eclipse简单有用的配置" target="_blank">Eclipse简单有用的配置</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a>
                                    <div>1、显示行号  Window -- Prefences -- General -- Editors -- Text Editors -- show line numbers 
  
2、代码提示字符 Window ->Perferences,并依次展开 Java -> Editor -> Content Assist,最下面一栏 auto-Activation</div>
                                </li>
                                <li><a href="/article/2827.htm"
                                       title="在tomcat上面安装solr4.8.0全过程" target="_blank">在tomcat上面安装solr4.8.0全过程</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/Solr/1.htm">Solr</a><a class="tag" taget="_blank" href="/search/solr4.0%E5%90%8E%E7%9A%84%E7%89%88%E6%9C%AC%E5%AE%89%E8%A3%85/1.htm">solr4.0后的版本安装</a><a class="tag" taget="_blank" href="/search/solr4.8.0%E5%AE%89%E8%A3%85/1.htm">solr4.8.0安装</a>
                                    <div>转载请出自出处:
http://eksliang.iteye.com/blog/2096478  
      首先solr是一个基于java的web的应用,所以安装solr之前必须先安装JDK和tomcat,我这里就先省略安装tomcat和jdk了 
        
第一步:当然是下载去官网上下载最新的solr版本,下载地址</div>
                                </li>
                                <li><a href="/article/2954.htm"
                                       title="Android APP通用型拒绝服务、漏洞分析报告" target="_blank">Android APP通用型拒绝服务、漏洞分析报告</a>
                                    <span class="text-muted">gg163</span>
<a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E/1.htm">漏洞</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/APP/1.htm">APP</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E6%9E%90/1.htm">分析</a>
                                    <div>点评:记得曾经有段时间很多SRC平台被刷了大量APP本地拒绝服务漏洞,移动安全团队爱内测(ineice.com)发现了一个安卓客户端的通用型拒绝服务漏洞,来看看他们的详细分析吧。  
0xr0ot和Xbalien交流所有可能导致应用拒绝服务的异常类型时,发现了一处通用的本地拒绝服务漏洞。该通用型本地拒绝服务可以造成大面积的app拒绝服务。  
针对序列化对象而出现的拒绝服务主要</div>
                                </li>
                                <li><a href="/article/3081.htm"
                                       title="HoverTree项目已经实现分层" target="_blank">HoverTree项目已经实现分层</a>
                                    <span class="text-muted">hvt</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/ASP.ENT/1.htm">ASP.ENT</a>
                                    <div>HoverTree项目已经初步实现分层,源代码已经上传到 http://hovertree.codeplex.com请到SOURCE CODE查看。在本地用SQL Server 2008 数据库测试成功。数据库和表请参考:http://keleyi.com/a/bjae/ue6stb42.htmHoverTree是一个ASP.NET 开源项目,希望对你学习ASP.NET或者C#语言有帮助,如果你对</div>
                                </li>
                                <li><a href="/article/3208.htm"
                                       title="Google Maps API v3: Remove Markers 移除标记" target="_blank">Google Maps API v3: Remove Markers 移除标记</a>
                                    <span class="text-muted">天梯梦</span>
<a class="tag" taget="_blank" href="/search/google+maps+api/1.htm">google maps api</a>
                                    <div>Simply do the following: 
  
I. Declare a global variable: 
var markersArray = []; 
  
II. Define a function: 
function clearOverlays() {
  for (var i = 0; i < markersArray.length; i++ )</div>
                                </li>
                                <li><a href="/article/3335.htm"
                                       title="jQuery选择器总结" target="_blank">jQuery选择器总结</a>
                                    <span class="text-muted">lq38366</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E9%80%89%E6%8B%A9%E5%99%A8/1.htm">选择器</a>
                                    <div>       1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40</div>
                                </li>
                                <li><a href="/article/3462.htm"
                                       title="基础数据结构和算法六:Quick sort" target="_blank">基础数据结构和算法六:Quick sort</a>
                                    <span class="text-muted">sunwinner</span>
<a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/Quicksort/1.htm">Quicksort</a>
                                    <div>Quick sort is probably used more widely than any other. It is popular because it is not difficult to implement, works well for a variety of different kinds of input data, and is substantially faster t</div>
                                </li>
                                <li><a href="/article/3589.htm"
                                       title="如何让Flash不遮挡HTML div元素的技巧_HTML/Xhtml_网页制作" target="_blank">如何让Flash不遮挡HTML div元素的技巧_HTML/Xhtml_网页制作</a>
                                    <span class="text-muted">刘星宇</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a>
                                    <div>今天在写一个flash广告代码的时候,因为flash自带的链接,容易被当成弹出广告,所以做了一个div层放到flash上面,这样链接都是a触发的不会被拦截,但发现flash一直处于div层上面,原来flash需要加个参数才可以。 
 
让flash置于DIV层之下的方法,让flash不挡住飘浮层或下拉菜单,让Flash不档住浮动对象或层的关键参数:wmode=opaque。 
 
方法如下: 
 </div>
                                </li>
                                <li><a href="/article/3716.htm"
                                       title="Mybatis实用Mapper SQL汇总示例" target="_blank">Mybatis实用Mapper SQL汇总示例</a>
                                    <span class="text-muted">wdmcygah</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%94%A8/1.htm">实用</a>
                                    <div>Mybatis作为一个非常好用的持久层框架,相关资料真的是少得可怜,所幸的是官方文档还算详细。本博文主要列举一些个人感觉比较常用的场景及相应的Mapper SQL写法,希望能够对大家有所帮助。 
不少持久层框架对动态SQL的支持不足,在SQL需要动态拼接时非常苦恼,而Mybatis很好地解决了这个问题,算是框架的一大亮点。对于常见的场景,例如:批量插入/更新/删除,模糊查询,多条件查询,联表查询,</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>