《白帽子讲Web安全》读后感 ——Deep Blue (一个安全小兵的感受) 这是一篇作业;这是一篇读后感;这是一篇记录安全的感悟;这是一篇对道哥的敬仰;这是我安全启蒙的钥匙……
和《白帽子讲Web安全》的缘分来自一个小意外,在来大学之前的我选择了信息安全这个专业。通过各种渠道吧,我在方方面面了解到这个行业的那些事儿,一点一滴的积累这我的安全观。指导我遇见这本书,第一次觉得安全原来是那么清晰的展示在我眼前。“互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了”当我看到这一句的时候,毫不犹豫的把它作为我的签名,原来我们才是让互联网变得不安全的人啊!
初来大学,第一次进入图书馆。当我发现AUST图书馆也藏有这本书的时候,我是多么激动,转便了所有的书架找到这本书。可以说是笑着抱回宿舍,开始了我的第一次阅读。
第一次看道哥的作品难度还是很大的,整本书四篇十八章,包括世界观安全、客户端脚本安全、服务端应用安全以及互联网公司安全运营四大部分。当时还是大一小萌新的我只看了世界观安全,第一次彻底了解到ROOT是个啥,以前只知道手机ROOT能删除一些系统应用。当我知道“root”对黑客的吸引,就像大米对老鼠,美女对色狼的吸引的时候,立下一个小flag拿下一个网站的root。不想拿到“root”的黑客,不是好黑客。说到黑客我也又不得不多说点,在黑客的世界里,有的黑客,精通计算机技术,能够自己挖掘漏洞,并编写“exploit”(黑客们使用的漏洞利用代码叫做exploit);而有的黑客,只是对攻击本身感兴趣,对计算机原理和各种编程技术的了解比较粗浅,因此只懂得编译别人的代码,自己并没有动手能力,这种黑客被称为“Script Kids”(脚本小子)。在现实世界中,真正造成破坏的,往往并非那些挖掘并研究漏洞的“黑客们”,而是这些脚本小子。在安全的道路上总是有人疑惑自己已经到了那一步,曾看到这样一个分级:会使用工具找漏洞就属于初级,能写自己的黑客工具应该就是中级阶段,能自动化“挖漏洞”就属于高级的大牛了。谈黑客,这本书中的黑客简史真的深深的吸引了我。
中国黑客发展分为三个阶段:启蒙时代、黄金时代、黑暗时代
启蒙时代
20世纪90年代,也正是中国互联网刚刚起步阶段,热爱新兴技术的青年收到国外黑客技术影响,开始研究安全漏洞。启蒙时代的黑客大多由于个人爱好走上这条路,好奇心和求知欲是他们前进的动力,没有任何利益瓜葛。这个时期的中国黑客们通过互联网,看到了世界,因此与西方发达国家同期诞生的黑客精神是一脉相传的,他们崇尚分享、自由、免费的互联网精神,并热衷于分钟自己的最新研究成果。
黄金时代
以2001年中美黑客大战为标志(感兴趣的同学可以百度一下“中美黑客大战”,相信大家都记得2001年中国飞行员王伟为了捍卫国家主权,被美国侦察机撞毁事件,起因正是这件事,这次事件中,中国黑客空前团结,与美国黑客开展了一场激烈的黑客大战,非常轰动,也这是世界第一次黑客大战),这次事件大大推动了中国黑客的发展,崛起了一批黑客、红客联盟,也让黑客这个特殊群体一下吸引了社会的眼球,黑客圈子所宣扬的黑客文化和黑客技术的独特魅力也吸引了无数的青少年走上黑客这条道路。这次事件之后,各种黑客组织如雨后春笋般冒出,他们普遍的特点是:年轻、有活力、充满激情,但技术上也许还不够成熟。此时,黑客圈子里贩卖漏洞、恶意软件的现象开始升温,因为黑客群体良莠不齐,开始出现以赢利为目的的攻击行为,黑色产业链逐渐成型。
黑暗时代
这个时代大概从几年前开始一直持续到现在(PS. 是哪一年呢?个人觉得大概是07年底左右开始吧),也许还将继续下去。这个时期的黑客组织也遵循社会发展规律,优胜劣汰,大多数黑客组织没有坚持下去,20世纪非常流行的黑客技术论坛也越来越没有人气,最终走向没落。所有门户型的漏洞披露站点,再也不公布任何漏洞相关技术细节。随着安全产业发展,黑客的功利性越来越强,黑色产业链开始成熟。在20世纪技术还不太成熟的黑客们,凡是坚持下来的,都已经成为安全领域的高级人才,要么,在安全公司贡献自己的专业技能,要么带着非常强的技术进入黑色产业。此时期的黑客群体因为互相之间缺失信任,已经不再具有开放和分享的精神,最纯粹的黑客精神实质上已经死亡。整个互联网笼罩在黑色产业链的阴影之下,每年数十亿经济损失和数千万网民受害,黑客精神的死亡,让我们没有理由不把这个时代称为黑暗时代。也许,黑客精神所代表的Open、Free、Share,真的一去不复返了!
真羡慕那个令人热血的时代,但如今依旧是互联网充满机遇的时代!
不过你知道吗? “黑客”是有好坏之分的!白帽子、黑帽子,他们是谁:在黑客的世界中,往往用帽子的颜色来比喻黑客的好坏。白帽子,是指那些精通安全技术,工作在反黑客领域的专家们;而黑帽子,是指利用黑客技术造成破坏,甚至进行网络犯罪的群体。
白帽子和黑帽子工作的心态完全不同:正是因为白帽子和黑帽子的目标不同,所以他们在工作时的心态是完全不同的。对于黑帽子来说,只要能够找到系统的一个弱点,就可以达到入侵系统的目的;而对于白帽子来说,必须找到系统的所有弱点,不能有遗漏,才能保证系统不会出现问题。白帽子要求全面宏观、黑帽子思考问题是有选择性的、微观的:白帽子一般为企业或安全公司服务,工作的出发点就是要解决所有的安全问题,因此所看所想必然要求更加的全面、宏观;黑帽子的主要目的是要入侵系统,找到对他们有价值的数据,因此黑帽子只需要以点突破,找到对他们最有用的一点,以此渗透,因此思考问题的出发点必然是有选择性的、微观的。
从对待问题的角度来看,黑帽子是不断组合问题,白帽子是不断分解问题:黑帽子为了完成一次入侵,需要利用各种不同漏洞的组合来达到目的,是在不断地组合问题;而白帽子在设计解决方案时,如果只看到各种问题组合后产生的效果,就会把事情变复杂,难以细致入微地解决根本问题,所以白帽子必然是在不断地分解问题,再对分解后的问题逐个予以解决。这种定位的不对称,也导致了白帽子的安全工作比较难做。“破坏永远比建设容易”,白帽子选择的方法,是克服某种攻击方法,而并非抵御单次的攻击。
安全问题往往发生在一些意想不到的地方:上述一切都是理想状态,在现实世界中,存在着各种各样不可回避的问题。工程师们很喜欢一句话:“No Patch For Stupid!”,在安全领域也普遍认为:“最大的漏洞就是人!”。写得再好的程序,在有人参与的情况下,就可能会出现各种各样不可预知的情况,比如管理员的密码有可能泄露,程序员有可能关掉了安全的配置参数,等等。安全问题往往发生在一些意想不到的地方。防御技术在不断完善的同时,攻击技术也在不断地发展。这就像一场军备竞赛,看谁跑在前面。
世界安全观不仅仅讲的是黑客是理念,更多的是思想。道哥也点出安全问题的本质是信任的安全问题。一切的安全方案设计的基础,都是建立在信任关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才能得以建立;如果我们否定一切,安全方案就会如无源之水,无根之木,无法设计,也无法完成。
把握住信任条件的度,是安全的艺术魅力:在现实生活中,我们很少设想最极端的前提条件,因为极端的条件往往意味者小概率以及高成本,因此在成本有限的情况下,我们往往会根据成本来设计安全方案,并将一些可能性较大的条件作为决策的主要依据。
从另一个角度来说,一旦我们作为决策依据的条件被打破、被绕过,那么就会导致安全假设的前提条件不再可靠,变成一个伪命题。因此,把握住信任条件的度,使其恰到好处,正是设计安全方案的难点所在,也是安全这门学问的艺术魅力所在。
安全的世界里,没有一劳永逸的银弹:在解决安全问题的过程中,不可能一劳永逸,也就是说“没有银弹”。任何人想要一劳永逸地解决安全问题,都属于一相情愿,是“自己骗自己”,是不现实的。
安全是一个持续的过程。 自从互联网有了安全问题以来,攻击和防御技术就在不断碰撞和对抗的过程中得到发展。从微观上来说,在某一时期可能某一方占了上风;但是从宏观上来看,某一时期的攻击或防御技术,都不可能永远有效,永远用下去。这是因为防御技术在发展的同时,攻击技术也在不断发展,两者是互相促进的辩证关系。以不变的防御手段对抗不断发展的攻击技术,就犯了刻舟求剑的错误。在安全的领域中,没有银弹。
我的世界安全观就这么建立了吧,安全问题的本质是信任的问题。并且安全是一个持续的过程,并不存在所谓的银弹。也知道一个安全评估的过程可以分为4个阶段:资产等级划分、威胁分析、风险分析、确认解决方案。虽然懵懵懂懂但总算是读下来了,还有那几个不太懂的白帽子兵法 1.Secure By Default 原则(白名单黑名单、最小权限原则)2.纵深防御原则 3.数据和代码分离原则 4.不可预测性原则
可喜可贺的是我也拥有了一本自己的《白帽子讲Web安全》这本书了,再也不用担心图书馆的这本书会被借走了。也在慢慢接触Web安全的一些漏洞。
Web 攻击技术发展的几个阶段:①Web 1.0时代,人们更多的是关注服务器端动态脚本的安全问题,比如将一个可执行脚本(俗称webshell)上传到服务器上,从而获得权限。动态脚本语言的普及,以及 Web 技术发展初期对安全问题认知的不足导致很多“血案”的发生,同时也遗留下很多历史问题,比如PHP 语言至今仍然只能靠较好的代码规范来保证没有文件包含漏洞,而无法从语言本身杜绝此类安全问题的发生。②SQL注入的出现是Web 安全史上的一个里程碑。SQL注入最早出现在 1999年,并很快就成为Web 安全的头号大敌。通过SQL 注入攻击,可以获取很多重要的、敏感的数据,甚至能够通过数据库获取系统访问权限,这种效果并不比直接攻击系统软件差,Web 攻击一下子就流行起来。(SQL 注入漏洞至今仍然是Web 安全领域中的一个重要组成部分。)③XSS (跨站脚本攻击)的出现则是 Web 安全史上的另一个里程碑。实际上,XSS 的出现时间和SQL 注入差不多,但是真正引起人们重视则是在大概 2003年以后。在著名的是2005年的MySpace的XSS 蠕虫事件后,安全界对 XSS 的重视程度提高了很多。④随着Web 2.0 的兴起,XSS 、CSRF(跨站请求伪造) 等攻击已经变得更为强大。Web 攻击的思路也从服务器端转向了客户端,转向了浏览器和用户。黑客们天马行空的思路,覆盖了Web 的每一个环节,变得更加的多样化。⑤互联网的蓬勃发展,也催生出许多新兴的脚本语言,比如Python 、Ruby、NodeJS等,敏捷开发成为互联网的主旋律。而手机技术、移动互联网的兴起,也给HTML 5 带来了新的机遇和挑战。Web安全技术,也紧跟着互联网发展脚步,不断地演化出新的变化。(以上名词:SQL注入、XSS跨站、CSRF跨站伪请求伪造等,不明白意思没关系,先熟悉个名词吧,知道它们是WEB应用安全的重要敌人就行,后面慢慢讲解他们具体是什么,有什么危害,怎么防范)
常用属性 Safari浏览器私有meta属性 UC浏览器私有meta属性 QQ浏览器私有meta属性 用了好久的apple的一些meta属性,突然想到怎么没看见像UC、QQ浏览器的,于是问了度娘,还真的是有。移动端设备主要是iOS和Android两类,从用户量来看,Safari、UC、QQ是较多的3款浏览器了,因此整理了下移动web开发常用和3种浏览器的私有meta属性。
1.常用属性 <meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,minimum=1.0,user-scalable=no"> <meta name="format-detection" content="telephone=no, email=no"> ‘viewport’ 设置显示方式,一般适配移动设备用来避免缩放和影响体验的滚动条 width=device-width:宽度为设备宽度 initial-scale: 初始的缩放比例 (范围从>0到 10 ) minimum-scale: 允许用户缩放到的最小比例 maximum-scale: 允许用户缩放到的最大比例 user-scalable: 用户是否可以手动缩放 ‘format-detection’ 忽略页面对手机号、email的识别 telephone:yes|no email:yes|no 2.Safari浏览器私有meta属性 <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-title" content="APP name"> ‘apple-mobile-web-app-capable’ 隐藏浏览器的地址栏和toolbar,页面显示为全屏,不加此meta则默认显示地址栏和toolbar content:yes|no ‘apple-mobile-web-app-status-bar-style’ content:default|black| black-translucent,即白色、黑色、灰色半透明 ‘apple-mobile-web-app-title’ 添加到主屏后的标题 3.UC浏览器私有meta属性 来源于UC开发者中心的文档 <meta name="screen-orientation" content="landscape"> <meta name="full-screen" content="yes"> <meta name="browsermode" content="application"> <meta name="layoutmode" content="fitscreen"> <meta name="nightmode" content="disable"> <meta name="
一、背景颜色、背景图修改
我在学些JS Web开发的过程中遇到以下问题: ,这里的navbar就是我网页的“网页头部”,我用MVC开发,默认的颜色是黑色,我前段时间费了很大劲才把这个navbar的颜色修改成别的颜色,主要经验有以下(首先不管到底对不对): (1)修改的时候不要有多余的Index文件(就是和你要测试的文件有重复类的类似文件)在你的同一个工程文件夹里; (2)修改Bootstrap.css文件里面的navbar的颜色部分,具体如下: .navbar { position: relative; min-height: 50px; margin-bottom: 1px; background-color:#D6123E; //此处是我修改的地方 background-image: url("../App_Themes/header.jpg"); border: 1px solid transparent; } 但是我今天想在.navbar 里修改背景颜色的时候,用IE测试,就是无法显示我的修改结果,我费了半天劲修改.navbar -default,但是还是不能修改。无奈之下我用Chrome测试,发现我的修改已经能显示出来了,我实在是不明白IE到底什么毛病呀,后来我想是不是要清理下IE的缓存? 于是马上清理的IE的缓存,可是依然没有反应,还是以前的颜色!!!使用Page Inspector 测试,也已经修改过来。然后再用IE测试发现IE里面显示网页也修改过来了!! 然后再次修改.navbar 的background-color为其它颜色,发现现在IE的颜色在修改后都能及时显示出来。哎,实在不明白IE到底是什么毛病呢????????? 二、字体颜色修改 背景图修改完后,navbar里面的字体的颜色默认是蓝色,和北京有点重复,这个怎么修改呢?通过google搜索bootstrap navbar font color到这个网址:http://stackoverflow.com/questions/24899720/bootstrap-navbar-cant-change-font-color 。大概意思就是我们的 bootstrap.css文件的第1009行有以下内容:
a { color: #337ab7; text-decoration: none; } 这个就是你代码里的所有“连接”的字体颜色和装饰(通常为下划线),所以我们要建立自己的css文件来屏蔽bootstrap.css文件的默认设置,我在site.css文件里面的设置如下:
.navbar a{ color:white; } 用Page Inspector 和 IE 测试,OK,但是为什么在Chrome里面又不行呢?哎,真是服了!!后来清理下缓存也能准确显示了!哎,新手到处都是坑呀
转自:http://blog.csdn.net/liuguobo/article/details/50847880
Post navigation Previous Post:关于开机出现“安装程序正在为首次使用计算机做准备”的解决方案及微软OOBE与SYSPREP的实用技巧Next Post:全球WannaCry勒索病毒爆发背后的技术漏洞 Recent Posts 暗网网址导航大全(2021年12月更新) 暗网网址合集 暗网链接 Deep Web Link Director 全球十大暗网搜索引擎 最详细的暗网教程——tor洋葱浏览器的安装和使用方法 最新darkweb暗网搜索引擎——Tordex | The Uncensored Tor Search Engine 顶级保密暗网网址分享 如何进入暗网?教程+工具 Tor 洋葱浏览器 如何进入暗网详细步骤(暗网网桥获取方法) 什么是“暗网”?我们该如何访问?
黑客组织发布出一份震惊世界的机密文档,其中包含了多个Windows 远程漏洞利用工具,此工具集覆盖大量的Windows服务 器,可以被任何人进行下载利用,攻击者可以利用工具对Windows目标主机进行溢出提权,危害极大。
目前已知受影响的 Windows 版本包括但不限于:Windows NT,Windows 2000(没错,古董也支持)、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8, Windows 2008、Windows 2008 R2、Windows Server 2012 SP0,基本全球70%的Windows服务器可能都暴露在危险之中,这次事件影响力堪称网络大地震!
面对这种指哪儿打哪儿的神级漏洞,锦行科技CTO.Jannock、长亭科技.Monster、腾讯玄武实验室.TK、腾讯湛泸实验室.yuange等国内相关安全专家也给出了一些想法和解决方案。微软MSRC也发布了一则风险评估公告,报告中指出微软MSRC分析了由Shadow Brokers公开提供 的大量漏洞,大多数漏洞都已经被修补。剩余的漏洞,也被验证在Windows7、Windows近期版本、Exchange2010以及Exchange较新版本中没有得到复现,不过微软MSRC强烈建议仍在使用这些产品先前版本的用户升级到更新版本。
想要了解相关防御方案,来i春秋学院吧!i春秋全网首发,为您复现真实漏洞场景,将被暴 露出的工具包搭建到虚拟环境中,用于大家学习,了解修补方案,达到安全防护的目的。
课程目标 本次实验将复现真实漏洞场景,让同学们分别从
漏洞产生原理、
漏洞攻击手法以及
如何修复漏洞这三个方面进行学习。
Web渗透三字经
最近在网上看见了前辈的Web渗透三字经:
1.用搜索 找注入 2.没注入 就旁注 3.没旁注 用0day 4.没0day 扫目录 5.找后台 爆账户 6.传小马 放大马 7.拿权限 挂页面 8.放暗链 清数据 9.清日志 留后门 作为一个新人就发表一下自己的拙见,记录学习:
1. 使用Google Hack 技术,搜索目标站点可能存在的SQL注入点,一般存在数据交互的地方可能存在,可考虑用:site:url inurl:?搜索,目的利用sql注入查询数据库内容,提升权限,获得webshell 2. 当在目标主站找不到注入点时,可以在主机的其他站点(旁站)上查找漏洞,从而利用主机上的程序或者是服务所暴露的用户所在的物理路径进行入侵 3. 找不到旁注时,如果手上有0DAY漏洞,可以直接利用0DAY漏洞进行渗透 4. 没有0DAY漏洞,也可以对目标站点进行敏感文件扫描(主要是文件目录的扫描),以找到重要目录 5. 扫描到站点敏感目录后找到后台,对登录名和密码进行暴力破解 6. 由于站点可能对上传文件有各种限制,那么此时可想法上传一个具有上传功能且隐蔽性高的shell即小马,利用上传的小马,上传一个能够具有更多权限和功能的大马 7. 拿到权限后能够在目标站点上放上自己写的钓鱼页面等 8. 拿到权限后能在目标站点上的网页中添加暗链,并且清除操作数据 9. 清除记录自己一切活动的日志记录隐蔽自己,然后留下webshell以便再次访问 作为一个小白能力实在有限,仅请各位看个指点,完善,感谢!
html 的demo如下:
css 样式: li{ color: red; font-size: 20px; float: left; list-style: disc; margin: 5px 10px; background:pink; text-indent: -20px; } li:hover{ color: black; } 只有更简单,没有最简单。
在Android平台URI主要分五个部分:scheme, authority, path, queryParameter, queryString。其中authority又分为host和port。格式如下:(url的所有字母命名只能为小写) scheme://host:port/path?qureyParameter=queryString 例如:myscheme://www.febmaple.com:80/mypath?key=mykey
在Android的Manifest配置文件中,在要启动的activity下配置项中有配置。 其中包含内容有:
<data android:host="" android:mimeType="" android:path="" android:pathPattern="" android:pathPrefix="" android:port="" android:scheme="" android:ssp="" android:sspPattern="" android:sspPrefix=""/> 1、web端html里写入 Click 2、android端在menifest的响应activity的intentfilter下配置,一般只需配置scheme和host即可。 3、这样手机系统自带浏览器碰到不能处理的scheme之后会发送intent给能处理的应用,因为我们的app可以处理该scheme,所以我的app得到启动。(ps:如果用webview加载html,webview碰到处理不了的scheme并不会发送intent找app处理,而系统自带浏览器是可以的,当然我们的需求就是用系统自带浏览器触发)。
Show u my code:
一、跳到app首页:新建一个app工程用webview加载所写的html,用以触发目标app。(实际需求是直接在系统浏览器里触发目标app) 1、建立html放到工程的main/assets目录下
</span> <html> <body> <h1>Test Schemeh1> <a href="myscheme://www.febmaple.com:80/mypath?key=mykey">Clicka> body> html> 2、webview加载本地html内容来触发目标app
wvUrl.loadUrl("file:///android_asset/test.html"); 3、在app manifeset的**欢迎**activity添加intent-filter配置data标签.
<activity android:name=".ui.launching.DemoLaunchingActivity" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="myscheme"/> intent-filter> activity> 4、在配置好的Activity里即可获取外部跳转的参数信息。
@Override protected void onCreate(Bundle savedInstanceState) { super.
四种最好的免费Bootstrap在线设计工具 Bootstrap带来了设计革命,本文介绍的四种免费Bootstrap在线设计工具,可视化所见所得设计网页,然后输出Html/CSS代码,其中有些甚至可以实现拖曳,也有可以设定自己的主题模板Theme。
1. Layoutit LayoutIt通过使用我们的拖放界面生成器帮助您简单快速地创建Bootstrap前端代码。它陈列出Bootstrap的每个元素和组件,你只需要用鼠标拖曳到页面上即完成设计,让您的前端编码更容易,不需要你是javascript,HTML5或CSS3的专家。所有的设计可以是响应式的CSS和流体。设计完成后,您只需下载HTML即获得自己设计的源码。 LayoutIt有四个主要菜单,Grid网格系统,这是布局Layout方面,是你首先必须选择的,是单栏 或左右分栏等;在Components组件中选择导航条;文字工作是选择”BASE CSS”,当你熟悉该工具以后,编写一个现代Html页面如同在Word里编辑文档一样方便容易。
2.Bootstrap Magic Bootstrap Magic主题生成器充分兼容Bootstrap3和AngularJS。您可以轻松快速地创建您自己的Twitter Bootstrap主题。这是可视化的,页面上陈列出所有Bootstrap的组件样式,你能够立即改变,也立即看到你改变的内容效果。您还可以从谷歌Webfont添加更棒的webfonts。他们都包含神奇的typehead字体。当你设计好自己的主题后,能够发布分享你的主题。
3. Fancyboot Fancyboot也是一个Bootstrap 简单但功能强大的定制工具,能够设计自己的主题,可以选择自己需要设计的组件,然后进行定制,设计完成后下载,没有所有不必要的复杂性。
4.Bootsnipp Bootsnipp是一个针对网页设计师的网页元素设计画廊,使用Bootstrap的人会发现这是他们设计网站是必不可少的。该设计工具虽然也是一种主题设计器,但是对每个BootStrap元素组件设计定制能力更强,能够单独对某个组件进行可视化选择设计,比如幻灯片设计可以选择上下方向变动还是左右方向。
css mask的原理:只会把遮罩图里透明像素所对应的原图部分进行隐藏。
渐变图作为mask,置于另一张图片上面。
#mask { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: url("images/img2.jpg"); background-size: cover; -webkit-mask-image: linear-gradient(120deg, transparent 50%, white 50%); }
在react native中,我们如果想要实现android的抽屉效果其实挺简单的,因为react-native为我们提供了DrawerLayoutAndroid这个api,使我们可以用几行代码就能实现酷炫吊炸天的动画效果,我们先来看看官网的介绍 这里主要就是介绍了drawerlayoutandroid有几个重要的方法,一个使设置宽度,一个是设置动画完成的时间,另一个是设置是否要支持手势操作,由于比较简单,直接上代码:
render() { const { drawer, navigator } = this.state; const navView = React.createElement(LeftNavigtor); return ( 200} drawerLockMode='locked-closed' drawerPosition={DrawerLayoutAndroid.positions.Left} renderNavigationView={() => { if (drawer && navigator) { return navView; } return null; }} ref={(drawer) => { !this.state.drawer ? this.setDrawer(drawer) : null }} > { drawer && paddingTop:55,backgroundColor:'#FFFFFF'}} initialRoute={{ id: 'homepage', params: {} }} ref={(navigator) => { !this.state.navigator ? this.setNavigator(navigator) : null }} navigationBar={} configureScene={this.configureScene} renderScene={this._renderRoute.bind(this)} /> } ); } } 这里有几点要注意,如果你的视图只允许点击时才出现,那么你要配置drawerLockMode='locked-closed'这个属性,并且必须使 ref={(drawer) => { !