兰遁和冰心简介 是不是对JS无效

恩&br&仅供网络渗透安全测试使用,严禁非法获取或篡改他人信息,解决方案见结尾&br&给你介绍个神奇的APP&br&&b&zanti(&/b&&b&需要root+busybox)&/b&&br&&figure&&img src=&https://pic4.zhimg.com/93d74135fdfddea31b6a963_b.png& data-rawwidth=&540& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&https://pic4.zhimg.com/93d74135fdfddea31b6a963_r.png&&&/figure&找到邻居家的电脑&br&&figure&&img src=&https://pic4.zhimg.com/4f8d6d58a47f551abe3b_b.png& data-rawwidth=&540& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&https://pic4.zhimg.com/4f8d6d58a47f551abe3b_r.png&&&/figure&启用 ZpackertEditor &br&&br&然后不仅可以查看对方访问的网页,还可以...&br&重定向特定网站到404啊&br&&figure&&img src=&https://pic2.zhimg.com/03cb02c3c078d831fc79841d_b.jpg& data-rawwidth=&3264& data-rawheight=&2448& class=&origin_image zh-lightbox-thumb& width=&3264& data-original=&https://pic2.zhimg.com/03cb02c3c078d831fc79841d_r.jpg&&&/figure&&br&把网页图片都换换啊&br&&figure&&img src=&https://pic2.zhimg.com/59de54e95c2bf778b4ebc52f02041ac5_b.png& data-rawwidth=&681& data-rawheight=&688& class=&origin_image zh-lightbox-thumb& width=&681& data-original=&https://pic2.zhimg.com/59de54e95c2bf778b4ebc52f02041ac5_r.png&&&/figure&&figure&&img src=&https://pic1.zhimg.com/ce70fa8e98c278_b.png& data-rawwidth=&1199& data-rawheight=&664& class=&origin_image zh-lightbox-thumb& width=&1199& data-original=&https://pic1.zhimg.com/ce70fa8e98c278_r.png&&&/figure&插点小广告啊&figure&&img src=&https://pic3.zhimg.com/124c70b83ba842caad06_b.png& data-rawwidth=&1082& data-rawheight=&1673& class=&origin_image zh-lightbox-thumb& width=&1082& data-original=&https://pic3.zhimg.com/124c70b83ba842caad06_r.png&&&/figure&替换图片啊&br&&figure&&img src=&https://pic2.zhimg.com/7c8310869_b.png& data-rawwidth=&1679& data-rawheight=&845& class=&origin_image zh-lightbox-thumb& width=&1679& data-original=&https://pic2.zhimg.com/7c8310869_r.png&&&/figure&&br&插个音乐iframe框架自动播放大小0x0啊&br&&figure&&img src=&https://pic2.zhimg.com/31415ede7ba4efdab8c736d755a69e3d_b.png& class=&content_image&&&/figure&查看对方密码、发的图片啊&br&很傻瓜化的,美中不足的就是&b&需要root+busybox了&/b&&br&&b&新增:&/b&&br&&b&genymotion&/b&&br&&figure&&img src=&https://pic1.zhimg.com/0ff9be5b9e47f6fbd8e17c_b.jpg& class=&content_image&&&/figure&&br&这个不用注册,第一个连接不上可以试试&br&如果没root的话,请先收藏找到了告诉你们~&br&&b&原理?&/b&&br&&figure&&img src=&https://pic3.zhimg.com/570fdb132a9e6ccda12aa_b.png& data-rawwidth=&571& data-rawheight=&228& class=&origin_image zh-lightbox-thumb& width=&571& data-original=&https://pic3.zhimg.com/570fdb132a9e6ccda12aa_r.png&&&/figure&&br&&b&怎么破呢?&/b&&br&下载arp防火墙&br&MAC绑定&br&使用VPN&br&不随便蹭别人家网
恩 仅供网络渗透安全测试使用,严禁非法获取或篡改他人信息,解决方案见结尾 给你介绍个神奇的APP zanti(需要root+busybox) 找到邻居家的电脑 启用 ZpackertEditor 然后不仅可以查看对方访问的网页,还可以... 重定向特定网站到404啊 把网页图片都换换啊 …
希望感兴趣的可以关注我的专栏,专注数据地图与空间分析:&a href=&https://zhuanlan.zhihu.com/citydata& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&zhuanlan.zhihu.com/city&/span&&span class=&invisible&&data&/span&&span class=&ellipsis&&&/span&&/a& 名字叫数读城事&br&也可以关注我的公众号:数读城事 CityDAst &br&&br&日更新&br&推荐一个地图神器, &a href=&//link.zhihu.com/?target=http%3A//echarts.baidu.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ECharts&/a&&br&既然是有趣的地图,当然还是讲地图&br&首先是“微博签到点亮中国”:&a href=&//link.zhihu.com/?target=http%3A//echarts.baidu.com/demo.html%23scatter-weibo& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ECharts Examples&/a&&br&&figure&&img src=&https://pic1.zhimg.com/v2-b7de851c92aac_b.png& data-rawwidth=&1169& data-rawheight=&793& class=&origin_image zh-lightbox-thumb& width=&1169& data-original=&https://pic1.zhimg.com/v2-b7de851c92aac_r.png&&&/figure&三大都市圈清晰可见。&br&&br&还有北京公交线路:&a href=&//link.zhihu.com/?target=http%3A//echarts.baidu.com/demo.html%23lines-bmap-effect& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&echarts.baidu.com/demo.&/span&&span class=&invisible&&html#lines-bmap-effect&/span&&span class=&ellipsis&&&/span&&/a&&br&原图是动的,好恶心==像小虫子。&br&&figure&&img src=&https://pic1.zhimg.com/v2-48a085c95adf960d55fb2b81d98721d0_b.png& data-rawwidth=&1247& data-rawheight=&832& class=&origin_image zh-lightbox-thumb& width=&1247& data-original=&https://pic1.zhimg.com/v2-48a085c95adf960d55fb2b81d98721d0_r.png&&&/figure&全球航班图:&br&&figure&&img src=&https://pic3.zhimg.com/v2-7d09b43012ece54d846bba_b.png& data-rawwidth=&1203& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1203& data-original=&https://pic3.zhimg.com/v2-7d09b43012ece54d846bba_r.png&&&/figure&朴姓人口迁徙图:&a href=&//link.zhihu.com/?target=http%3A//gallery.echartsjs.com/editor.html%3Fc%3DxHJr-qVeWl& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&gallery.echartsjs.com/e&/span&&span class=&invisible&&ditor.html?c=xHJr-qVeWl&/span&&span class=&ellipsis&&&/span&&/a&&br&&figure&&img src=&https://pic4.zhimg.com/v2-95ab9c37c682a61c1ce377ded2c631bb_b.png& data-rawwidth=&1391& data-rawheight=&841& class=&origin_image zh-lightbox-thumb& width=&1391& data-original=&https://pic4.zhimg.com/v2-95ab9c37c682a61c1ce377ded2c631bb_r.png&&&/figure&同样是动态图,从图里至少可以发现:朴姓人口大都从东北出发,考虑到朴姓大都为朝鲜族,这也就很好理解了&br&--------------------------------------------------------------------------------------------------------------------------------------------&br&&a href=&tel:160520&/a&更新 &br&最近莆田系医院闹得风风火火我就做了个莆田系医院的分布图。数据来源是百度API,没有仔细验证,权当看个大概吧。&br&首先是莆田系医院的现状分布情况:&br&&figure&&img src=&https://pic3.zhimg.com/81ebe1d5ffc76_b.jpg& data-rawwidth=&3600& data-rawheight=&2700& class=&origin_image zh-lightbox-thumb& width=&3600& data-original=&https://pic3.zhimg.com/81ebe1d5ffc76_r.jpg&&&/figure&哈哈哈哈==感觉这个分布和人口线好像,额,不过也是啦,肯定是往人多的地方开医院的嘛&br&&br&接着是按省级行政区的莆田系医院数量分布:&br&&figure&&img data-rawheight=&2700& data-rawwidth=&3600& src=&https://pic3.zhimg.com/a40d0fe23b164e125bebd66d155f509e_b.jpg& class=&origin_image zh-lightbox-thumb& width=&3600& data-original=&https://pic3.zhimg.com/a40d0fe23b164e125bebd66d155f509e_r.jpg&&&/figure&&br&广东山东江苏已经沦陷啦- - &br&&br&最后是莆田系医院的密度,每平方千米的莆田系医院个数,咦我觉得这样好像没啥意义哦==不过很有趣就是了,密度最高的地方莫过于北京上海,小小的地方聚集了大量的莆田系医院。&br&&figure&&img data-rawheight=&2700& data-rawwidth=&3600& src=&https://pic2.zhimg.com/6e7a9f86fdbb7ee1c7bd_b.jpg& class=&origin_image zh-lightbox-thumb& width=&3600& data-original=&https://pic2.zhimg.com/6e7a9f86fdbb7ee1c7bd_r.jpg&&&/figure&&br&&br&-------------------------------------------------------------------------------------&br&作为一个地图控的规划学生,我推荐几个不错的有意思的地图吧。&br&-----------------------------------------------&br&首先是一个网站 &a href=&//link.zhihu.com/?target=http%3A//worldmap.harvard.edu/maps/79& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ChinaMap&/a& 然后因为我英语不太过关,反正我也不知道他写的啥,反正就是哈佛大学的一个啥东西,里面中国的各种有趣的数据地图真的很有趣。&br&最重要的是!图层是可以叠加的,比如人口,,1990等的人口数据之间的联系可以通过不同区域之间的“线”联系起来,这就是人口迁徙地图,还有别的,自己去发现吧。&br&下面是截图时间!&br&&figure&&img src=&https://pic1.zhimg.com/29ab34f6ab783e365cc40_b.jpg& data-rawwidth=&1363& data-rawheight=&641& class=&origin_image zh-lightbox-thumb& width=&1363& data-original=&https://pic1.zhimg.com/29ab34f6ab783e365cc40_r.jpg&&&/figure&底图是2010年的人口分布,黄色的点是每个省的人口净迁入量,绿色的线段表示不同省份之间的人口迁徙关系。最有趣的地方在于,每一个点,每一条线都是可以点击打开查看具体数据的。&br&&figure&&img src=&https://pic4.zhimg.com/8b3dcec57f_b.jpg& data-rawwidth=&1364& data-rawheight=&642& class=&origin_image zh-lightbox-thumb& width=&1364& data-original=&https://pic4.zhimg.com/8b3dcec57f_r.jpg&&&/figure&这是局部放大后的长三角人口迁徙地图。&br&&figure&&img src=&https://pic3.zhimg.com/bbc088cad4f3a_b.jpg& data-rawwidth=&1366& data-rawheight=&639& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic3.zhimg.com/bbc088cad4f3a_r.jpg&&&/figure&2010年的人口分布地图,精确到县,同样的,每个县的人口都是可查的。&br&&figure&&img src=&https://pic3.zhimg.com/cf4ceae72aea8c3bda24e_b.jpg& data-rawwidth=&1365& data-rawheight=&637& class=&origin_image zh-lightbox-thumb& width=&1365& data-original=&https://pic3.zhimg.com/cf4ceae72aea8c3bda24e_r.jpg&&&/figure&2011年高速铁路与2010年人口分布的叠加&br&&figure&&img src=&https://pic4.zhimg.com/7ebabf09bd73_b.jpg& data-rawwidth=&1366& data-rawheight=&639& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic4.zhimg.com/7ebabf09bd73_r.jpg&&&/figure&2003年都市地区的分布,包括了韩国日本的数据&br&更有意思的是下面的,历史数据:&br&&figure&&img src=&https://pic2.zhimg.com/c181da6cc9074b1_b.jpg& data-rawwidth=&1366& data-rawheight=&641& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/c181da6cc9074b1_r.jpg&&&/figure&可能是金(误)的宗教场所的分布。&br&&figure&&img src=&https://pic3.zhimg.com/fbb77b0d371cf20c3e3dba6_b.jpg& data-rawwidth=&1363& data-rawheight=&642& class=&origin_image zh-lightbox-thumb& width=&1363& data-original=&https://pic3.zhimg.com/fbb77b0d371cf20c3e3dba6_r.jpg&&&/figure&1820年的时候寺庙的分布(星星眼)&br&&figure&&img src=&https://pic4.zhimg.com/c7af6443db5feab6d8eb_b.jpg& data-rawwidth=&1366& data-rawheight=&640& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic4.zhimg.com/c7af6443db5feab6d8eb_r.jpg&&&/figure&2010年大学的分布。&br&&figure&&img src=&https://pic3.zhimg.com/3a644b1dd2cbff0c93a4c9a_b.jpg& data-rawwidth=&1366& data-rawheight=&639& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic3.zhimg.com/3a644b1dd2cbff0c93a4c9a_r.jpg&&&/figure&方言地图,以县为单位&br&&figure&&img src=&https://pic2.zhimg.com/6c632078cbf0a6d7c465_b.jpg& data-rawwidth=&1366& data-rawheight=&636& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/6c632078cbf0a6d7c465_r.jpg&&&/figure&中国语言区的划分&br&好有好多好多,自己去发现吧,比如公共健康啊,GDP啊等等&br&==这就叫做帝国主义亡我之心不死,研究中国还开放网站~~~~&br&--------------------------------------------------------------------------------&br&说完了哈佛的高端大气上档次呢,我接着说一个小众一点的,&a href=&//link.zhihu.com/?target=http%3A//www.caup.net/map/citylink/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&城市间联系:地名中的新闻共现地图&/a&&br&这是&a href=&//link.zhihu.com/?target=http%3A//bbs.caup.net/index.php& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&国匠城-城市规划理想&/a&开发的一个系统,简单来说就是基于百度新闻数据进行的城市间关联度的可视化地图,网页上的说明里有:&blockquote&1、本数据的基础是百度新闻搜索结果里的城市名称共现数&br&2、本表现所用的JS库是百度出品的Echarts&br&3、本数据的作用是发现新闻共现度高的城市,并且根据人工查看新闻结果进行解释&br&4、本数据持续采集更新&br&5、本应用制作为国匠学社大数据学习小组&/blockquote&&figure&&img src=&https://pic2.zhimg.com/1d126bc5b42ead7ecb3dba5_b.jpg& data-rawwidth=&1366& data-rawheight=&631& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/1d126bc5b42ead7ecb3dba5_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/f1b615a0d_b.jpg& data-rawwidth=&1366& data-rawheight=&636& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/f1b615a0d_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/9d9f4d26ad16fdb70a1d_b.jpg& data-rawwidth=&1366& data-rawheight=&634& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/9d9f4d26ad16fdb70a1d_r.jpg&&&/figure&&br&截图还是没有网页上的动图来的酷帅, &a data-hash=&ffd7ed7429& href=&//www.zhihu.com/people/ffd7ed7429& class=&member_mention& data-editable=&true& data-title=&@国匠城& data-hovercard=&p$b$ffd7ed7429&&@国匠城&/a& 匠大,这么给你推销有没有好处啊~送我个小方块也是好的~~&br&------------------------------------------------------------------------&br&然后还有密藏干货,&a href=&//link.zhihu.com/?target=http%3A//urbandataview.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&UrbanDashboard&/a& 这是一个叫做城市空间画像的东西,到底是什么,自己去看吧~~~&br&下面是截图,侵删&br&&figure&&img src=&https://pic1.zhimg.com/37b7f70ebc6ec8f_b.jpg& data-rawwidth=&1345& data-rawheight=&341& class=&origin_image zh-lightbox-thumb& width=&1345& data-original=&https://pic1.zhimg.com/37b7f70ebc6ec8f_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/dec211c5be50e22d91bdbe_b.jpg& data-rawwidth=&1339& data-rawheight=&361& class=&origin_image zh-lightbox-thumb& width=&1339& data-original=&https://pic3.zhimg.com/dec211c5be50e22d91bdbe_r.jpg&&&/figure&北京的&a href=&//link.zhihu.com/?target=http%3A//urbandataview.com/citymood.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&城市心情&/a&&br&&blockquote&在这个部分中,我们获取了2014年北京市新浪微博签到数据360多万条,我们通过自然语言处理算法提取出每条微博的关键词和情感度,通过归纳过滤在宏观尺度上得到整个城市的关键词和情感。我们也对签到地址数据进行了分析和可视化,从中可以看到北京市人口的一些空间分布规律。&/blockquote&&figure&&img src=&https://pic4.zhimg.com/13e52135bb5ede9c14cb5d7ca6fc1593_b.jpg& data-rawwidth=&933& data-rawheight=&127& class=&origin_image zh-lightbox-thumb& width=&933& data-original=&https://pic4.zhimg.com/13e52135bb5ede9c14cb5d7ca6fc1593_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/f13db6f95abef6ec940c51d_b.jpg& data-rawwidth=&993& data-rawheight=&631& class=&origin_image zh-lightbox-thumb& width=&993& data-original=&https://pic2.zhimg.com/f13db6f95abef6ec940c51d_r.jpg&&&/figure&网站上那个还有好多有意思的东西==截图好累大家自己去看啊~~&br&最后我要说一句话==有数据就是娘啊~~~&br&还有,虽然没人会转载但是这么说好装逼的样子,所以我要说,禁止一切形式的转载,如有需要可联系我!以及,网站截图如有侵权我就先说对不起了,告诉我我删除。
希望感兴趣的可以关注我的专栏,专注数据地图与空间分析: 名字叫数读城事 也可以关注我的公众号:数读城事 CityDAst 日更新 推荐一个地图神器,
既然是有趣的地图,当然还是讲地图 首先是“微博签到点亮中国”:
&p&本回答会长期更新……最后一次修改于.&/p&&p&有兴趣的可以添加我的微信订阅号:陈柏龄的酱油台(soychen01),分享高质量的健身原创文章。还有这个专栏:&a href=&http://zhuanlan.zhihu.com/jszxs& class=&internal&&健身自习室 - 知乎专栏&/a&。&/p&&p&一两句话是讲不清楚的。&/p&&p&如果是系统点的,想要了解一些基础知识的,请继续往下看……&/p&&p&&br&&/p&&p&===========================分割线================================&/p&&p&&b&正文前的话&/b&&/p&&p&知乎健身和减肥下有不少话题,被邀请了不少次,许多提问者会在问题中附上自己的体重、身高,然后请人制定详细的健身计划。在知乎上,这被戏称为伸手党。此类问题,个人认为十分不当,因此专门设一个问题。实际上对于大部分没有锻炼基础的人,想要减脂和增肌,锻炼方式基本上是差不多的。如果真的是要特别有针对性的建议,那么只靠身高体重,也是制定不出计划的。&/p&&p&请看&a class=&member_mention& href=&//www.zhihu.com/people/0d142f908c& data-hash=&0d142f908c& data-hovercard=&p$b$0d142f908c&&@Arron Leung&/a&的回答: &a href=&http://www.zhihu.com/question/& class=&internal&&中国男性如何增强体质?&/a&&/p&&blockquote&不要去找什么“中国男性如何增强体质”。中国人也是地球人,去看看全世界的人是如何做的。然后照样去学就是。 &/blockquote&&p&你也是地球人,所有的地球人增强体质的方法其实都差不多。本质上就是增加肌肉,减少脂肪,你不需要减少脂肪,那就增加肌肉好了。身体的&u&耐力&/u&、&u&力量&/u&、&u&爆发力&/u&、&u&速度&/u&,一切的一切提高,都离不开肌肉,所以要增强体质,增肌训练、力量训练一般都不可避免。
当然,除了上面说的,还有一点很重要,就是&u&心肺能力&/u&,而心肺能力的提高,靠的是长时间的低强度运动,俗称有氧运动,也就是长跑、游泳等。 &/p&&p&而我最开始要说的是,一切的计划都先抛开。先练起来再说。
对于没有基础的人,有训练就能够有很大的提高。
新手健身没必要搞很多的计划,你把一些基本原理和训练方法搞懂,然后开始练就好了。或者直接找人带你练。基本上新手有练就有很大的提高,坚持练三个月一周练三次。
比如健身房增肌的话,那么推(俯卧撑/卧推)、拉(划船/引体)、蹲(深蹲/硬拉)练一遍,偶尔练练小肌群,几周身体就会有明显的变化。
减脂的话就跑步、骑单车、瑜伽,坚持三个月,身体素质绝对提高一个档次,后面感觉到自己遇到了瓶颈,或者付出没有得到好的回报,再来根据自己情况问问题或者自己查资料解决——我当初就这么做的。至于计划表什么的,那是针对练到一定程度的人的。对于新人来说,没有专业的指导和督促,计划表很多时候是毫无执行力和有效性的。 &/p&&p&好的,我之前说了,新手健身没必要搞很多的计划,你把一些基本原理和训练方法搞懂,然后开始练就好了。你可以先开始练,但是你要有一个意识(知道你身体的缺陷再在哪里,在日常和运动的时候去考虑如何改正这个缺陷),等你懂了一部分健身知识以后,再进行慢慢的改善。或者最简单的方法,就是寻求私人教练的帮助——简单说,要么你自己付出精力成本学习健身,要么你付出金钱成本让教练教你健身。&/p&&p&&br&&/p&&p&&b&正文:&/b&&/p&&p&&br&&/p&&p&&b&一、无脑上手的的锻炼步骤&/b& &/p&&p&1.热身5-10min。
2.无氧运动30~60min。(俯卧撑、深蹲、硬拉、器械锻炼等)
3.有氧运动30~60min。(跑步、游泳、登山等)&/p&&p&具体原理见下:&/p&&p&【热身的重要性】为确保安全,一般在健身锻炼前要先做一段热身锻炼,热身运动的主要目的是轻微加快心跳。它有两个好处:一是能提高身体主要部位的体温,二是能使更多的血液(氧气)流向肌肉,从而为身体进行更剧烈的活动作好准备,轻微活动后的伸拉运动会使筋腱更灵活,因为它提高了体温并增加了关节活动范围,从而可避免关节,韧带和肌肉损伤。&/p&&p&如何热身可以看这里,这是我花费超过100小时制作的热身文章:&/p&&p&下肢热身:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&有哪些比较重要的,能有效保护膝盖的热身动作? - 知乎&/a&&/p&&p&上肢热身:&a href=&//link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA3MDE5NDQxMQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Dec8bf2b2dff85e200074eaf%26chksm%3D86c6b6ecb1b13ffa46d5f56db11f0adaf218f3d4c903bd9f9fb09a0e%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&我的上肢热身:龄动S&/a&&/p&&p&【先有氧还是先无氧?】我建议应该把无氧器械锻炼放在前面。因为无氧运动更需要调动你的神经和你的肌肉纤维,对肌肉募集能力的要求更高一些。如果你要在一次运动中同时进行有氧和无氧锻炼,那么我建议你把无氧运动放在有氧运动前面。&/p&&p&另外,我建议女生也做做无氧,减脂时加上一些力量锻炼能够让减脂事半功倍。很多女生就是因为担心力量锻炼会变成“肌肉女”所以都不去进行力量锻炼,其实这也是个误区。肌肉增长很大程度上是看睾酮的,女性的睾酮分泌量只有男性的十分之一,男性练得再辛苦也难以练出电视上海报上那样块状的肌肉。所以大部分女性无需担心这一点。(参见我的知乎回答:&a href=&http://www.zhihu.com/question//answer/& class=&internal&&为什么美国有那么多肌肉极其强大的肌肉男?&/a&以及 &a href=&http://www.zhihu.com/question/& class=&internal&&如果我每周锻炼二十个小时,我会变成肌肉猛男吗?&/a&)&/p&&p&【无氧运动的时间】如果是力量训练,很多人认为控制在1小时是最佳的状态,其实无所谓,很多力量举世界冠军一周只练3次,一次训练长达3、4个小时。按照自己的计划来就好了。&/p&&p&&br&&/p&&p&&b&二、最简单的锻炼计划&/b&&/p&&p&遵循上面的热身+无氧运动+有氧运动的步骤。最简单的运动方案就是:&/p&&p&&b&1.热身10分钟。&/b&&/p&&p&&b&2.做做力量训练。&/b&&/p&&p&&b&3.然后出去跑5公里,两天或者三天一次。 &/b&&/p&&ul&&li&这是我个人总结的,比较普适的、又比较基础的增肌和减脂计划。不需要去健身房,主要运动场所就是&b&家里和街道&/b&。增肌部位主要针对的是肱三头肌、胸肌和腹肌。
&/li&&li&无氧+有氧,这是针对减脂而言,如果你想增加力量,或者增长肌肉,可以把后面的有氧运动拿掉,放在下一次的健身中专门训练。你的训练目的决定了你的训练方法,而不同的训练方法有不同的训练效果。如果你要增加力量,在力量训练后再去做有氧练习会降低之前力量训练的效果。但如果你要减脂,力量训练后再去做有氧训练会起到很好的效果。特别是对于没有锻炼基础的人。原因在于:对于刚刚开始训练的人而言,「隔天训练,一次训练较长时间」会比「每天训练,一次训练较短时间」更容易坚持。如果每天训练很让人感到疲劳,容易中断,一旦中断很多没有健身习惯的人就会停止健身。而两三天练一次,一次训练时间比较长,更容易去培养健身习惯,因为休息的缓冲比较长。&/li&&li&我个人建议的最佳锻炼次数是&b&一周三或四次。至少保证三天一次的锻炼。&/b&坚持20周,4个月下来,绝对身材有极大改观,体质会有质的突破。&/li&&li&如果选择了去健身房锻炼的人, 具体的计划还是就是在仰卧起坐和俯卧撑的基础上增加器械的锻炼。
&/li&&li&有条件的知友,真的想系统地锻炼并且增加肌肉的,建议还是找健身房的教练带一两个月,或者找懂健身的认识的人带带,自己大概明白了再自己一个人练。
&/li&&/ul&&p&&br&&/p&&p&&b&三、一开始不要每天锻炼&/b&
我不建议一开始就天天都去锻炼,是因为&/p&&p&&b&1.能否坚持的问题。&/b&&/p&&p&很多人减脂减肥增肌都是一开始很积极,狠练猛练,然后过了一两周觉得非常累身体吃不消,然后就停下来了,多少人办了张健身卡结果去几次就不去了。在减脂和增肌的过程中,锻炼很重要,但是休息同样重要! 不给身体足够的休息时间,那么身体累积的疲劳迟早会让你停止运动,而一旦原先这种运动的惯性被打破,对于刚开始减脂的人而言,很可能意味着他难以再继续坚持运动。&b&&u&这不只是由你的意志决定的,更多的是由你的身体决定的,不要对自己那没有锻炼基础的身体太自信&/u&。&/b&另外肌肉酸痛也需要一定量的休息才能够缓解,不然很容易出现过度训练。&/p&&p&&b&2.效率问题。&/b&
保持质量并且坚持才是正道,隔天去一次,或者一周去三次,毕竟大家的时间都是有限的。
有氧运动能够提高的基础代谢一段时间,所以对于时间不充裕的人而言,隔天一次是最佳的。&/p&&p&&br&&/p&&p&&b&四、一些最基本的健身知识&/b& &b&
唔,以下附了链接的,基本字数都在1000字以上。&/b& &b&
1.肌肉增长的原理:实际上肌肉并不是在锻炼时长出来的。&/b&在锻炼时中,你的训练会使肌肉被破坏,而回家补充的蛋白质就是用来补充被破坏的肌肉的,在补的过程中,原先的肌肉纤维会慢慢变大,这就是肌肉生长的基本原理,如果在肌肉恢复之前又不断对其进行训练,那么只能起到反效果。因此锻炼和蛋白质的补充是增长肌肉的要点。&/p&&p&&b&2.关于无氧运动的分组锻炼问题:&/b& 世界上大部分健身人群和运动员的无氧运动/增肌的方法,就是通过分组锻炼来进行的。一般来说,每个动作4组,一组8~12个。根据训练强度和计划中要达到的训练效果,中间休息30s到3min不等。之所以现在的运动员和普通健身人群都采用分组锻炼的方法,是因为已经有大量的科学实验和事例表明,通过分组锻炼,肌肉能够获得更大的刺激从而得到更快的生长,而组数在4组时,肌肉刺激达到最大,生长最好。&/p&&p&这里要注意的是【力竭】,你要在每组动作结束后,肌肉达到力竭或接近力竭状态,什么是力竭?就是说当你在做完10个标准的动作后,你无论如何都无法标准地完成第11个动作了,只能变形地完成这个动作,那么这第10个动作就算达到了你的力竭。 &/p&&p&&b&3.如果我非常勤奋地训练、每周训练二十个小时,我会变成肌肉猛男吗?:答案是,至少三四年内,不吃激素、不上补剂,几无可能。具体请看&/b&&a href=&http://www.zhihu.com/question/& class=&internal&&如果我每周锻炼二十个小时,我会变成肌肉猛男吗?&/a&&/p&&p&&b&4.增肌是局部增肌,而减脂是全身减脂:&/b&
从来没有哪种方法能减少身体某个特定部位(如腹部,腿部)的脂肪,脂肪是一个整体,要减就是从头到脚一起减。如果真要说有什么方法能让某个特定部位的脂肪看上去少一点,那就是增加该部位的肌肉含量,改变该部位脂肪/肌肉比率,这样在视觉效果上能到达&局部减脂&的目的。&/p&&p&事实上只要你运动了都能够消耗热量。减脂的本质就在于吸收的热量小于你消耗的热量。所以不要在意你是否「运动满30分钟才开始消耗脂肪」的问题。&/p&&p&那些所谓局部瘦身是不可靠的,没科学依据。包括电视上很多只瘦局部的药物也全部没有科学依据。局部锻炼基本上都是无氧运动。不消耗脂肪。要消耗脂肪必然是全身消耗。 &/p&&p&举个例子。去健身房的话你会经常看见有些人以为练腹部就会减腹部脂肪,这就是很明显的一个错误,单纯练腹部只会增长腹部肌肉,但是不会减少腹部脂肪。 &/p&&p&而男性身体较易堆积脂肪的部位是腹部和胸部,所以腹部要减的话是最难的,基本上全身都减掉了肚子还是有脂肪。减脂和增肌都是任重而道远,需要慢慢来的。&/p&&p&&b&5.饮食部分&/b&
(1)&a href=&http://www.zhihu.com/question/& class=&internal&&节食减肥是徒劳吗?为什么?&/a&
(2)&a href=&http://www.zhihu.com/question/& class=&internal&&为练肌肉,饮食要注意什么?&/a&
(3)&a href=&http://www.zhihu.com/question/& class=&internal&&减脂应该配合怎样的三餐食物?&/a&
(4)&a href=&http://www.zhihu.com/question/& class=&internal&&减肥药品靠谱吗?&/a&
(其实第二第三条比较苛刻,不一定要绝对满足,尽量往上面靠近就好了)我上面列出来的增肌和减脂的饮食是差不多的。 有些人觉得很惨,但我我一整天一点都不饿啊。关键的一点就是,稍微有饿感的时候就进食(基本3小时进食一次),但是不吃多,吃到5分饱。每天都保持着这种状态。 具体看链接吧。&/p&&p&&b&6.补剂部分:&/b&
(1) &a href=&http://www.zhihu.com/question/& class=&internal&&健身吃蛋白粉对身体是否有损害?&/a&
(2) &a href=&http://www.zhihu.com/question//answer/& class=&internal&&缓释型蛋白粉和乳清蛋白粉有什么区别?分别适合什么情况下吃?&/a&
(3)&a href=&http://www.zhihu.com/question/& class=&internal&&对于健身中的各类补剂,你的态度是?&/a&&/p&&p&&b&7.锻炼部位:&/b&
胸部:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&zhihu.com/question/3581&/span&&span class=&invisible&&3180/answer/&/span&&span class=&ellipsis&&&/span&&/a&
背部:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&如何系统的锻炼背部肌肉? &/a&
&a href=&http://www.zhihu.com/question/& class=&internal&&怎么把屁股练翘?&/a&
伸髋力量:&a href=&http://www.zhihu.com/question//answer/& class=&internal&&如何完成标准的硬拉?&/a&
腹肌: &a href=&http://www.zhihu.com/question/& class=&internal&&如何健身才能练出腹肌?&/a&&a href=&http://www.zhihu.com/question/& class=&internal&&如何锻炼腹肌更加有效?&/a&&a href=&http://www.zhihu.com/question/& class=&internal&&Plank 平板支撑真的效果明显?&/a&&a href=&http://www.zhihu.com/question/& class=&internal&&平板支撑(plank)真的有效吗?什么是锻炼腹肌的最好方法?&/a&
肩部: &a href=&http://www.zhihu.com/question/& class=&internal&&如何在练三角肌的时候不过分练到斜方肌和脖子?&/a&&a href=&http://www.zhihu.com/question//answer/& class=&internal&&怎样锻炼 能让肩膀变宽?&/a&
腿,背,肩,手,胸,腹。请记住这六个部位。你每个周期的训练都要把这些部位囊括进去。缺了任何一个部位都会造成整体的不协调。但同样需要记住的是,除了腹部,其他每块肌肉的一周不要训练超过二次(不过目测99%人的都达不到这个强度),因为肌肉的休息更加重要。
&a href=&http://www.zhihu.com/question/& class=&internal&&健身时腿部肌肉和上半身肌肉同样重要吗?&/a&&/p&&p&&br&&/p&&p&&b&8.无器械健身动作:&/b&
(1)剪蹲:&a href=&http://www.zhihu.com/question//answer/& class=&internal&&如何完成标准的剪蹲?&/a&
(2)深蹲:&a href=&http://www.zhihu.com/question//answer/& class=&internal&&如何完成标准的深蹲?&/a&
(3)&a href=&http://www.zhihu.com/question/& class=&internal&&做仰卧起坐时,为什么抱头比不抱头要费力?&/a&
(4)&a href=&http://www.zhihu.com/question/& class=&internal&&仰卧起坐和俯卧撑,是分组做好还是一次性做到力竭好?&/a&
(5)&a href=&http://www.zhihu.com/question/?rf=& class=&internal&&做不了俯卧撑的话,该从哪几项先分别锻炼起?&/a&
(6)&a href=&http://www.zhihu.com/question/& class=&internal&&Plank 平板支撑真的效果明显?&/a&
(7)&a href=&http://www.zhihu.com/question/& class=&internal&&平板支撑(plank)真的有效吗?什么是锻炼腹肌的最好方法?&/a&&/p&&p&&br&&/p&&p&&b&9.跑步类问题:&/b&
(1) &a href=&http://www.zhihu.com/question/& class=&internal&&早上可以空腹跑步吗?为什么?&/a&
(2) &a href=&http://www.zhihu.com/question/& class=&internal&&想在健身房的跑步机上跑步,购买什么样子跑步鞋合适?&/a&
(3) &a href=&http://www.zhihu.com/question/& class=&internal&&什么样的跑步鞋比较好?如何选购?&/a&
(4) &a href=&http://www.zhihu.com/question/& class=&internal&&从锻炼身体,提高基础代谢以及增强耐力等目的来看,用跑步机和在户外跑步,差别到底有多大?&/a&
(5) &a href=&http://www.zhihu.com/question/& class=&internal&&跑步初学者应该注意哪些问题?&/a&
(6)&a href=&http://www.zhihu.com/question/& class=&internal&&有哪些小技巧可以让自己每天坚持跑步?&/a&&/p&&p&&b&10.增肌类问题:&/b&
(1)&a href=&http://www.zhihu.com/question/& class=&internal&&人在成年后可能通过举哑铃而大幅度增加肩宽吗?&/a&
(2) &a href=&http://www.zhihu.com/question/& class=&internal&&增肌的「瓶颈期」指的是什么?有哪些方法可以突破增肌的瓶颈期?&/a&
(3) &a href=&http://zhuanlan.zhihu.com/jszxs/& class=&internal&&全面解析肌肉酸痛 - 健身自习室 - 知乎专栏&/a&(这篇应该是目前最全面解析肌肉酸痛的帖子)
(4) &a href=&http://zhuanlan.zhihu.com/jszxs/& class=&internal&&生理学第一课:全面解析肌肉酸痛 - 健身自习室 - 知乎专栏&/a&
(5) &a href=&http://www.zhihu.com/question/& class=&internal&&为什么健身时大部分人倾向自由力量(哑铃、杠铃一类)而不是器械(划船机等)?&/a&
(6) &a href=&http://www.zhihu.com/question/& class=&internal&&同等健身强度下,胖人会比瘦人更容易练出肌肉吗?&/a&
(7) &a href=&http://www.zhihu.com/question/& class=&internal&&与清醒时相比,人在睡眠时的肌肉增长情况是什么样的?&/a&
(8) &a href=&http://www.zhihu.com/question/& class=&internal&&举哑铃为什么要分组练习,能一次性举多次吗,譬如每天一次性举30次?&/a&&/p&&p&&b&11.减脂部分:&/b&
(1)&a href=&http://www.zhihu.com/question/& class=&internal&&减脂和增肌是否应该同时进行?&/a&
(2)&a href=&http://www.zhihu.com/question/& class=&internal&&如何减肥才有效?&/a&
(3)&a href=&http://www.zhihu.com/question/& class=&internal&&科学的减肥方式有哪些?不可采取的方式又有哪些?&/a&
(4)&a href=&http://www.zhihu.com/question/& class=&internal&&有氧运动时间须超过一定时间才有减脂作用是真的吗?是谬论吗?&/a&&/p&&p&&b&12.妹纸健身部分:&/b&
(1)&a href=&http://www.zhihu.com/question/& class=&internal&&女孩子平时在家里有哪些健身锻炼的好方法?&/a&
(2)&a href=&http://www.zhihu.com/question/& class=&internal&&女生如何给自己制定一个家中的健身计划?&/a&
(3)&a href=&http://www.zhihu.com/question//answer/& class=&internal&&女生在运动的时候为什么要穿减震内衣? 有哪些值得推荐的减震内衣?&/a&
(4)&a href=&http://www.zhihu.com/question//answer/& class=&internal&&平常保持健身的女性如何利用经期这四分之一的时间?&/a&&/p&&p&&b&13.健身房问题:&/b&
(1) &a href=&http://www.zhihu.com/question/& class=&internal&&去健身房有必要找私教吗?&/a& (我觉得增肌肯定需要,减脂可以不需要)
(2)&a href=&http://www.zhihu.com/question/& class=&internal&&不请私教如何能尽可能做到健身时动作标准?&/a&
(3)&a href=&http://www.zhihu.com/question/& class=&internal&&第一次去健身房需要做哪些准备?&/a&
(4)&a href=&http://www.zhihu.com/question/& class=&internal&&如何鉴别健身教练是否专业靠谱?&/a&&/p&&p&&b&14.猛烈吐槽类问题回答(全部推荐啊哈哈):&/b&
(1) &a href=&http://www.zhihu.com/question/& class=&internal&&为什么美国有那么多肌肉极其强大的肌肉男?&/a&
(2) &a href=&http://www.zhihu.com/question/& class=&internal&&女生如何健康有效的减去肌肉?&/a&
(3)&a href=&http://www.zhihu.com/question/& class=&internal&&如果我每周锻炼二十个小时,我会变成肌肉猛男吗?&/a&&/p&&p&&b&15.拓展和延伸:&/b&
(1)&a href=&http://www.zhihu.com/question/& class=&internal&&健美运动员的身材是怎么来的?会对身体有什么样的影响?&/a&
(2) &a href=&http://www.zhihu.com/question/& class=&internal&&为什么美国有那么多肌肉极其强大的肌肉男?&/a&
(3) &a href=&http://www.zhihu.com/question//answer/& class=&internal&&可以系统分析下吸烟喝酒对健身成果有什么样的影响吗?&/a&
(4) &a href=&http://www.zhihu.com/question/& class=&internal&&为什么说增加肌肉是技术活,难道不是体力活嘛?&/a&
(5) &a href=&http://www.zhihu.com/question/& class=&internal&&肌肉男的力量一定大吗?&/a&
(6)&a href=&http://www.zhihu.com/question/& class=&internal&&为什么健身,又该为健身投入多少?&/a&
(7)&a href=&http://www.zhihu.com/question//answer/& class=&internal&&健身教练收入平均多少,是否虚高?如果是,为什么没有降下来?健身场所及私教算不算暴利行业?&/a&(荐)
(8)&a href=&http://www.zhihu.com/question/& class=&internal&&要想穿衣服好看,男生需要练好哪几块肌肉? &/a&
(9)&a href=&http://www.zhihu.com/question/& class=&internal&&女生如何健身,才能做到穿衣显瘦,形体优美? &/a&&/p&&p&&b&16.有待商榷的问题:&/b&
(1)&a href=&http://www.zhihu.com/question/& class=&internal&&在跑步机上跑10KM,实际跑过的距离是不到10KM的么?&/a&
(2)&a href=&http://www.zhihu.com/question/& class=&internal&&达到减肥和健身目的的慢跑是一次跑90分钟好,还是一天分两次一次跑45分钟好呢?&/a&
(3) &a href=&http://www.zhihu.com/question/& class=&internal&&用跑步机和在户外跑步,差别到底有多大?&/a&&/p&&p&&b&17.体能测试/健身计划/健身拓展(全部推荐):&/b&
(1)&a href=&http://www.zhihu.com/question//answer/& class=&internal&&减肥前怎么做基础体能测试?&/a&
(2)&a href=&http://www.zhihu.com/question/& class=&internal&&如何分析自己的体能测试结果?&/a&
(3)&a href=&http://www.zhihu.com/question//answer/& class=&internal&&如何自己制定健身训练计划?&/a&
(4)&a href=&http://www.zhihu.com/question//answer/& class=&internal&&真正合理的健身训练流程是什么?&/a&
(5)&a href=&http://www.zhihu.com/question//answer/& class=&internal&&严谨的健身运动类的入门书籍有哪些?&/a&
建议把高科老师的回答都认真看一下。高科老师强调的是先做好「体态矫正」,然后再进行训练,让自己的身体基本平衡,让关节不会出现负荷过大的现象,力量不会脱节再进行更大强度的训练。具体的请看高科老师的一系列回答。&/p&&p&&br&&/p&&p&&b&五&/b&&/p&&p&&b&最后,强烈推荐新手入门书籍:《施瓦辛格健身全书》。&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/9e79d2c0adc99c6f6fc8b1da3e99553f_b.jpg& data-rawwidth=&380& data-rawheight=&500& class=&content_image& width=&380&&&/figure&&p&总之,需要了解的知识太多了,可以写几千页的书了。我没办法全面涵盖,只能把之前自己和别人在知乎上面回答的一部分比较靠谱且通俗的问题和答案整合起来放这里了。施瓦辛格写了500页的书,抛开那些训练方法的图片,也至少有300页,那还是20年前的科普书。请注意,《施瓦辛格健身全书》只是科普类书籍。系统的了解,请去看《体能训练概论》《运动解剖学》《运动生理学》这类书籍,这是没一年半载啃不下来的,完全是技术性的东西,大家在实践中学习好了,也只能在实践中学习。 未来几年,我可能会出一个系列面向新手的健身书籍科普,如果有兴趣的同学可以关注一下。&/p&&p&&br&&/p&&p&&b&六 &/b&&/p&&p&减脂和增肌从来没有简单、快捷、轻松的法子。有的只是汗水和坚持,对待后者时甚至还要加上智慧。人类还没有进化到可以不动就减少脂肪或者增加肌肉的方法,这是我们百万年进化过程中遗留下来的生理机制。对于你的身体来说,在你不锻炼的情况下,它无法为你维持大量的肌肉, 因为它必须时刻待命,为你囤积脂肪,面对随时到的饥荒。&/p&&p&所以无论是减脂还是增肌,都是在和你的本能做斗争。&/p&&p&&br&&/p&&p&七 &/p&&p&如果有兴趣进一步学习健身的动作,可以进入我的两场知乎Live,支持一下:&/p&&p&深蹲篇:《&a href=&https://www.zhihu.com/lives/042880/messages& class=&internal&&深蹲的那些事儿&/a&》
硬拉篇:《&a href=&https://www.zhihu.com/lives/746496& class=&internal&&如何练习传统硬拉&/a&》&/p&&p&这篇文章是对知乎上健身回答一个小小的整理,有一定的系统性,但是还不够专业。这个回答并不让我满意,未来某一天我会写一个系列更完善的文章或者书籍出来。&/p&&p&&b&如果你觉得本文对你有帮助,也欢迎关注我的微信订阅号:陈柏龄的酱油台(soychen01),分享高质量的原创健身文章。&/b&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//weixin.qq.com/r/PU2utiXEyXi2rWHV9xgv& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&weixin.qq.com/r/PU2utiX&/span&&span class=&invisible&&EyXi2rWHV9xgv&/span&&span class=&ellipsis&&&/span&&/a& (二维码自动识别)&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&本人相关回答允许付费转载,但转载请务必注明出处和作者。请勿做于商业用途。&/b&&/p&
本回答会长期更新……最后一次修改于.有兴趣的可以添加我的微信订阅号:陈柏龄的酱油台(soychen01),分享高质量的健身原创文章。还有这个专栏:。一两句话是讲不清楚的。如果是系统点的,想要了解一些基础知识的,请继续往…
谢邀。。。。 压根没人邀请我,好像这个词成为知乎的通用开篇词语。&br&&br&&br&十月一的假期间,看到这个问题,当时没怎么在意。几天后,在微博上,又看到这个问题,冥冥中,有种想回答的冲动。上周六时,研发部门内部周会时,听到其他项目组的一个整型溢出问题,导致刷钱的bug。这更加坚定我要回答这个问题的决心,拯救地球的任务,就交给我了。以下是在下经历过的webgame安全问题的经验,定有不妥指出,还请各位斧正。如果觉得帮助了你,亦可分享给其他做webgame研发的朋友,做交流探讨。&br&&br&原问题是『网页游戏都有哪些安全问题?』,我觉得不妥,我给改成了『网页游戏都有哪些安全问题?如何做得更安全?』,同时,问题也从『大家来研究探讨一下,网页游戏攻防技术。必定,这个话题很敏感。目前,网页游戏已经很多了,会不会被黑产盯上?网页游戏会不会被黑,数据库会不会被拖库』改成了『大家来研究探讨一下,网页游戏攻防技术。必定,这个话题很敏感。目前,网页游戏已经很多了,会不会被黑产盯上?网页游戏会不会被入侵?入侵方式有哪些?如何做好网页游戏的入侵防御?挽救措施有哪些?如何才能最小化减少厂商损失?』,更改的理由是『本文原提问者开篇提到「大家来研究探讨一下,网页游戏攻防技术。」,那么应该不光提到如何入侵,更应该提到如何防御,应该细心描述漏洞形成原理,规避方式,以提高研发者技能水平;应该详细讲解安全事件发生后,如何最小化减少厂商损失,减少用户损失,保护游戏平衡。』,幸运的是,这个修改,被知乎通过了。对此,表示感谢。&br&&br&前面安全专家&a class=&member_mention& data-editable=&true& data-title=&@余弦& data-hash=&afea1df0fc2b1fd51e9ca04d8b166f80& href=&//www.zhihu.com/people/afea1df0fc2b1fd51e9ca04d8b166f80& data-hovercard=&p$b$afea1df0fc2b1fd51e9ca04d8b166f80&&@余弦&/a& 站在安全工作者的角度,回答了这个问题。下面我将以webgame研发者角度,切合游戏业务模块逻辑,从业务需求,数据库设计,程序编写,操作方式上来讲解漏洞形成原理,规避方案,也欢迎大家讨论。 &br&&br&&br&&b&登录认证&/b&&br&
近几年,网页游戏几乎都是以联运方式运营,意味着游戏服务器本身不保存用户密码,用户登录在平台,通过平台跟游戏服务器的接口对接登录。接口做加密认证。故webgame的帐号密码安全问题,这里不提了。但登录认证的hash字符串安全,也还是要注意的。比如登录hash字符串的生效时间,hash字符串的加密参数来源,比如包括用户名、登录IP,浏览器user-agent等数据,以防止改hash被泄漏了,也是很难通过服务器的验证。&br&&br&&b&游戏充值&/b&&br&
webgame的游戏充值流程,跟普通网页充值流程一致,没有特殊的地方,其不同点就是跟其他众多平台做联合运营时,势必要每个公司做接口对接,且接口规范各式各样,且游戏厂商没有话语权,必须按照他们的接口规范来,这实在棘手。腾讯的充值接口的验证方式,安全性做的较为突出,大约代码:&div class=&highlight&&&pre&&code class=&language-php&&&span class=&x&&$signKey = array('openid','appid','ts','payitem','token','billno','version','zoneid','providetype','amt','payamt_coins','pubacct_payamt_coins');&/span&
&span class=&x&&$sign = array();&/span&
&span class=&x&&//从GET参数中,对比找出上面参数的值&/span&
&span class=&x&&foreach($signKey as $key ) {&/span&
&span class=&x&&
if (isset($data[$key]))&/span&
&span class=&x&&
&span class=&x&& $sign[$key] = $data[$key];
//只有 GET里有的参数,才参与sig的计算&/span&
&span class=&x&&
&span class=&x&&}&/span&
&span class=&x&&######开始生成签名############&/span&
&span class=&x&&//1: URL编码 URI&/span&
&span class=&x&&$url = rawurlencode($url);&/span&
&span class=&x&&//2:按照key进行字典升序排列&/span&
&span class=&x&&ksort($sign);&/span&
&span class=&x&&//3: &拼接,并URL编码&/span&
&span class=&x&&$arrQuery = array();&/span&
&span class=&x&&foreach ($sign as $key =& $val ) &/span&
&span class=&x&&{ &/span&
&span class=&x&&
$arrQuery[] = $key . '=' . str_replace('-','%2D',$val);&/span&
&span class=&x&&}
&span class=&x&&$query_string = join('&', $arrQuery);&/span&
&span class=&x&&//4 以POST方式拼接 1、3 以及URL&/span&
&span class=&x&&$src = 'GET&'.$url.'&'.rawurlencode($query_string);&/span&
&span class=&x&&// ## 构造密钥&/span&
&span class=&x&&$key = $this-&config-&get('qq_appkey').'&';&/span&
&span class=&x&&//### 生成签名&/span&
&span class=&x&&$sig = base64_encode(hash_hmac(&sha1&, $src, strtr($key, '-_', '+/'), true));&/span&
&span class=&x&&if ( $sig != $data['sig'] ) {&/span&
&span class=&x&&
$return['ret'] = 4;&/span&
&span class=&x&&
$return['msg'] = '请求参数错误:(sig)';&/span&
&span class=&x&&
$this-&output-&set(json_encode($return));&/span&
&span class=&x&&&/span&
&span class=&x&&}&/span&
&/code&&/pre&&/div&在此基础上,还可以做的严谨点:&br&&ol&&li&增加随机参数名、参数值。随机参数名、参数值由联运方随机生成,按照参数名的字符串所属ASCII码顺序排序,参数名、参数值均参与sign的计算,增加暴力破解密钥(app key)难度。&br&&/li&&li&增加回调验证订单号,金额信息。游戏充值服务器接收到充值请求时,反向到该平台回调接口,确认此笔订单有效性,以防止加密密钥泄漏的问题。&br&&/li&&/ol&&b&远程文件引入&/b&&br& 在网页游戏的研发中,多数都是使用框架来做,即使用REQUEST来的参数,作为请求文件名的一部分,来使用,那么很容易形成远程文件引入的漏洞。在我们之前的游戏中,曾出现过一例这样的漏洞问题。&br&&div class=&highlight&&&pre&&code class=&language-php&&&span class=&x&&// Load the local application controller&/span&
&span class=&x&&// Note: The Router class automatically validates the controller path.
If this include fails it&/span&
&span class=&x&&// means that the default controller in the Routes.php file is not resolving to something valid.&/span&
&span class=&x&&if ( ! file_exists(APPROOT.'controllers/'.load('Router')-&getDirectory().load('Router')-&getClass().EXT))&/span&
&span class=&x&&{&/span&
&span class=&x&& load('Errors')-&show404('Unable to load your default controller.
Please make sure the controller specified in your Routes.php file is valid.');&/span&
&span class=&x&&}&/span&
&span class=&x&&include(APPROOT.'controllers/'.load('Router')-&getDirectory().load('Router')-&getClass().EXT);&/span&
&span class=&x&&load('Benchmark')-&mark('load_basic_class_time_end');&/span&
&/code&&/pre&&/div&&figure&&img src=&https://pic4.zhimg.com/d68b576c17941dccf7a37f7aeaad0733_b.jpg& data-rawwidth=&988& data-rawheight=&191& class=&origin_image zh-lightbox-thumb& width=&988& data-original=&https://pic4.zhimg.com/d68b576c17941dccf7a37f7aeaad0733_r.jpg&&&/figure&从代码以及案例图中,可以看到对于REQUEST的参数没有过滤处理,直接作为文件名来include引入的,故导致这种问题,类似上页图中QQ群网站的漏洞。若PHP version & 5.3.4 ,还会发生Null(%00) 截断的问题,带来更大的安全问题。在我们新的项目中,我们更改了实现方式,我们游戏所有接口都会走gateway,gateway里,对控制器名做类名规范的检测处理,再在指定几个目录下做autoload加载文件,且还会对REQUEST的类名、方法用ReflectionClass反射类的处理,检测到类、方法、参数是否合法。一来避免『远程文件引入』漏洞问题,二来便于前后端联调时,抛出更详细的异常,方便调试。下面为参考代码:&br&&div class=&highlight&&&pre&&code class=&language-php&&&span class=&x&&require_once CONFIG_PATH . &/auto.php&;&/span&
&span class=&x&&spl_autoload_register(&__autoload&);&/span&
&span class=&x&&......&/span&
&span class=&x&&//默认消息格式&/span&
&span class=&x&&$view-&clear();&/span&
&span class=&x&&$view-&error(MLanguages::COM__INVALID_REQUST);&/span&
&span class=&x&&$msg = new Afx_Amf_plugins_AcknowledgeMessage($val-&data[0]-&$messageIdField);&/span&
&span class=&x&&$msg-&setBody($view-&get());&/span&
&span class=&x&&$message-&data = $&/span&
&span class=&x&&...&/span&
&span class=&x&&$a = new Yaf_Request_Simple();&/span&
&span class=&x&&$a-&setControllerName($method[0]);&/span&
&span class=&x&&$a-&setActionName($method[1]);&/span&
&span class=&x&&$objC = new ReflectionClass($method[0].&Controller&);&/span&
&span class=&x&&$arrParamenter = $objC-&getMethod($method[1].&Action&)-&getParameters();&/span&
&span class=&x&&$arrRequest = isset($val-&data[0]-&body[0]) ? (array)$val-&data[0]-&body[0] : array();&/span&
&span class=&x&&$bCanCall =&/span&
&span class=&x&&foreach ($arrParamenter as $objParam)&/span&
&span class=&x&&{&/span&
&span class=&x&&
$parm = $objParam-&getName();&/span&
&span class=&x&&
$bIsOption = $objParam-&isOptional();
//是否为可选参数&/span&
&span class=&x&&
if (isset($arrRequest[$parm]))&/span&
&span class=&x&&
&span class=&x&&
$a-&setParam($parm , $arrRequest[$parm]);&/span&
&span class=&x&&
&span class=&x&&
elseif ($objParam-&isOptional())&/span&
&span class=&x&&
&span class=&x&&
//可选参数&/span&
&span class=&x&&
&span class=&x&&
else&/span&
&span class=&x&&
&span class=&x&&
$bCanCall =&/span&
&span class=&x&&
&span class=&x&&}&/span&
&span class=&x&&if ($bCanCall)&/span&
&span class=&x&&{&/span&
&span class=&x&&
$rp = $app-&getDispatcher()-&dispatch($a);&/span&
&span class=&x&&
$msg = new Afx_Amf_plugins_AcknowledgeMessage($val-&data[0]-&$messageIdField);&/span&
&span class=&x&&
$msg-&setBody($view-&get());&/span&
&span class=&x&&
$message-&data = $&/span&
&span class=&x&&}&/span&
&/code&&/pre&&/div&&br&&b&SQL 注入&/b&&br&SQL注入原理、方式,跟普通web应用一样,没什么特别的,在使用REQUEST来的参数时,过滤处理即可。可能在消息格式,以及注入操作简便上,会蒙蔽研发人员的眼睛,被忽略掉了。比如我们项目的AMF消息格式,在前端界面没出来之前,我们后端程序员一般使用Pinta来模拟操作,调试程序。前端界面出来之后,会使用Charles proxy来捕捉http请求。在这些过程中,请求接口、参数的构造,没有普通web那么简单。研发人员也容易忽略对请求参数的过滤,故很容易形成这种问题。防御方式做过滤处理,或SQL预编译。&br&&figure&&img src=&https://pic2.zhimg.com/baf2f10b201_b.jpg& data-rawwidth=&478& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&478& data-original=&https://pic2.zhimg.com/baf2f10b201_r.jpg&&&/figure&SQL 注入产生&br&&figure&&img src=&https://pic3.zhimg.com/dfccd1eba8161699ebbbcb6_b.jpg& data-rawwidth=&477& data-rawheight=&490& class=&origin_image zh-lightbox-thumb& width=&477& data-original=&https://pic3.zhimg.com/dfccd1eba8161699ebbbcb6_r.jpg&&&/figure&&br&为了提高游戏服务器的吞吐能力,网页游戏的架构也是一直在演变的。在之前以Mysql作为数据存储的webgame架构中,其他节点都是可以水平扩展,或者说依赖简单粗暴的增加服务器来解决,单单作为唯一数据存储中心,不能这么做。为此,很多webgame的数据存储改用Nosql来代替,甚至java、C/C++的游戏数据,直接在内存中操作,游戏关服时,才写入到DB中。故SQL注入的问题,也会越来越少。&br&&br&&b&通讯协议与消息格式&/b&&br&网页游戏虽然名字叫网页游戏,但通讯协议并非全是http,也有很多使用socket,以及http+socket并用的做法。我们是http协议+amf消息格式,以及socket并用来实现。在http与https的取舍上,我们考虑到ssl的启用后,大量的ssl解密加密运算,势必会增加服务器大量的CPU计算压力。而传输的内容,多数是游戏业务的操作,响应,是能接受被监听嗅探的行为的(认证信息除外)。站在安全角度,这不能理解。但站在产品角度,考虑一下 投入产出,然后选择http通讯,也是可以理解的。socket在我们游戏中,除了在聊天应用上使用外,在一些组队、帮派战之类需要多个玩家之间同步数据信息时,我们也会使用socket来推送数据。在使用socket作为所有业务传输的协议时,协议格式一般都是开源协议,比如msgpack、protobuf之类,或者自定义的协议。使用自定义协议时,务必检测整个消息包的每一个参数,类型范围,避免个别超大数值、边界数值出现,导致主程序内存越界,以至于服务宕机,无法正常服务的情况发生。&br&&br&&b&金币复制-整型溢出&/b&&br&&blockquote&上周周六开周会时,听到其他项目组的一个关于整型溢出导致产生刷金币的问题。在这里,我抽象该案例,分享一下。商城出售开启背包格子的所需道具『梧桐木』。在游戏中,用户包裹格子数量一般都会作为一个收费点,一款游戏的格子大约为每行7格子,一共8行这样。比如前面3行是默认开放的,第4行是收费的,而且第一个格子所需品梧桐木的价格1个银子,第二个梧桐木是2个银子,第三个是4个银子。依次类推,意味着这些梧桐木的价格总和其实就是一个第一项为1,公比为2,项为35的等比数列。 当用户选择购买梧桐木数量大于31时,比如32-36中这些数字时,这些等比数列的和就是大于。(只是举例,实际上不会以这样的价格出售物品)&br&&/blockquote&在java中,4字节的存放int型变量的范围是-至。在java、c的有符号int型中存储时,数的最高位描述符号位,4字节共32位,除去最高位的符号位,剩下31位,每个位上能表示2个数字,4字节的有符号的整数表示范围为:负整数2^31个,范围为『-1至-』;正整数2^31个,范围为『至1』。 比如下图(注意十进制数字跟二进制表示的变化顺序):&figure&&img src=&https://pic2.zhimg.com/44c0d4bcab80589bdb6dc563e5fbf441_b.jpg& data-rawwidth=&1325& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&1325& data-original=&https://pic2.zhimg.com/44c0d4bcab80589bdb6dc563e5fbf441_r.jpg&&&/figure&&br&当开启格子数字为大于31时,比如32,那么所需费用就是个银两,再买点其他物品,凑成超过的数字,比如又买了3个银子的其他道具,总共花费个银子,在4字节的有符号int中表示出来的结果,变成符号位为1,即负整数。数值位为00 ,也就是00 ,对应十进制的-。程序逻辑上,再判断现有银两是否足够支付此笔花费时,是通过的。当使用当前余额减去这笔花费时,将变成减去一个负数,那么实际上就是加上一个正整数。变成了自己银两账户余额的增长。而余额字段类型是long,则正确的存储了这些余额,溢出漏洞被利用。在C中,使用无符号的数值类型,即可完成数值类型溢出刷钱的行为,但在java中,好像没有无符号的类型。这也可以先确定所有参与计算的数值必须为正整数作为必要条件(游戏业务特性,游戏内所有数字,肯定全为正整数,甚至都不包括零),先做大小判断,再做正正相加,不能得负;负负相加,不能得正。来判断是否发生了溢出问题。&br&&br&&b&金币复制-并发请求&/b&&br&Rpg类型的网页游戏中,多数都有道具出售的功能,直接卖到商店,以及道具材料从商店买入功能。当玩家同时针对买入、卖出两个操作,瞬间大量并发请求时,在服务器的处理逻辑一般有分别的两个进程处理,共享数据分别数据库中的对应账户余额表,如下图:&figure&&img src=&https://pic1.zhimg.com/eff094a140d4b6f424a4_b.jpg& data-rawwidth=&883& data-rawheight=&404& class=&origin_image zh-lightbox-thumb& width=&883& data-original=&https://pic1.zhimg.com/eff094a140d4b6f424a4_r.jpg&&&/figure&&br&&div class=&highlight&&&pre&&code class=&language-php&&&span class=&x&&//卖出&/span&
&span class=&x&&// startTrans&/span&
&span class=&x&&$iBalance = $obj-&getBalance('user1');
//余额50&/span&
&span class=&x&&//UPDATE `role_gold` SET gold = 150 WHERE role_id = 1&/span&
&span class=&x&&if(!$obj-&setBalance('user1',$iBalance + 100))&/span&
&span class=&x&&{&/span&
&span class=&x&&
//rollback&/span&
&span class=&x&&}&/span&
&span class=&x&&//扣除物品&/span&
&span class=&x&&if (!$obj-&delItems($items))&/span&
&span class=&x&&{&/span&
&span class=&x&&
//rollback&/span&
&span class=&x&&}&/span&
&span class=&x&&//commit&/span&
&span class=&x&&//买入&/span&
&span class=&x&&// startTrans&/span&
&span class=&x&&$iBalance = $obj-&getBalance('user1');
//余额50&/span&
&span class=&x&&//UPDATE `role_gold` SET gold = 0 WHERE role_id = 1&/span&
&span class=&x&&if(!$obj-&setBalance('user1',$iBalance - 50))&/span&
&span class=&x&&{&/span&
&span class=&x&&
//rollback&/span&
&span class=&x&&}&/span&
&span class=&x&&//发放物品&/span&
&span class=&x&&if (!$obj-&addItems($items))&/span&
&span class=&x&&{&/span&
&span class=&x&&
//rollback&/span&
&span class=&x&&}&/span&
&span class=&x&&//commit&/span&
&/code&&/pre&&/div&&br&卖出请求的处理进程为1,买入请求的处理进程为2。在进程1还没将结果写入到DB时,进程2也从DB读取到余额为50。这是,两个进程拿到的余额信息都是50。进程1按照逻辑代码,计算出剩余余额是150;进程2计算出的剩余余额是0。最后,不管那个进程最后写入余额,都是错误的结果。(注:这里的代码逻辑操作,跟mysql事务无任何关系,事务只能保证单个进程的事务范围内多条语句都正确执行,或回滚。比如能保证扣钱成功,且物品删除掉的两个语句都正确执行。能保证其中之一的语句执行失败时,都正确回滚。)&br&其实,在事物开启时候,SELECT语句是否可以取到最新的数据,或者是否需要等待锁释放,取决于MYSQL的事务隔离级别。在MYSQL的事务隔离级别中,有一下几种隔离级别:&figure&&img src=&https://pic3.zhimg.com/64ca8fda136e39a792a12_b.jpg& data-rawwidth=&780& data-rawheight=&271& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&https://pic3.zhimg.com/64ca8fda136e39a792a12_r.jpg&&&/figure&&br&&ol&&li&READ-UNCOMMITTED(读取未提交内容)级别&br&&/li&&li&READ-COMMITTED(读取提交内容&br&&/li&&li&REPEATABLE-READ(可重读)&br&&/li&&li&SERIERLIZED(可串行化)&br&&/li&&/ol&对于READ-UNCOMMITTED,可以读取其他事务中未提交的数据,而且据说性能还高不到哪里去,几乎没有在实际应用中使用;对于READ-COMMITTED,在同一事务中,会因为其他事务随时可能有新的commit,导致同一select可能返回不同结果。这个也不适合游戏业务;再说第四个SERIERLIZED,只要事务开启,所有其他查询,均排队等待该事务提交之后,对于上面提到的卖出买入情况,第二个事务的SELECT操作,不会立刻返回,会处于锁等待状态,一直到前一个事务结束。这个隔离级别,虽然能避免上面的问题,但性能较差,一般不会去使用。而REPEATABLE-READ隔离级别,也是mysql默认的隔离级别,从功能上,比较符合游戏业务需要,也应该是广大webgame架构中mysql的默认隔离级别。&br&&br&对于这个问题,你可能很快就给出解决办法,把UPDATE语句改为UPDATE `role_gold` SET gold = gold
+ 100 WHERE role_id = 1或者UPDATE `role_gold` SET gold = 150 WHERE role_id = 1 AND gold = 100来解决,但这种多个事务同时操作修改多个表的多条记录时,还容易引发死锁问题,比如: &a href=&//link.zhihu.com/?target=http%3A//www.cnxct.com/error--deadlock-found-when-trying-to-get-lock-try-restarting-transaction/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&webgame中Mysql Deadlock ERROR )错误的排查历程&/a& 而且,当条件为跨表内数据是否存在,或者另外条件不在MYSQL中,而在其他网络接口的响应中时,如何做呢?&br&&br&&b&金币复制--逻辑漏洞&/b&&br&引用DNF的漏洞新闻 《利用网游漏洞狂刷游戏币赚钱 玩家自曝3天赚17万》&br&&blockquote&玩家曝出刷币漏洞 一个游戏道具可刷400人民币&br&该漏洞到底是什么?原来游戏中“云幂袖珍罐”这个道具,可以开出2件一样的游戏装备,还有极少几率开出游戏币,开出的装备不值钱,但如果开出金币了,则分为5000万、8000万以及1亿游戏币。而1亿游戏币,按正常市场行情,可在交易网上卖400多元人民币。据玩家称,在游戏中,角色的装备是需要用包裹来存放的,不过目前角色的包裹最多只有48格,也就是只能存放最多48件装备。漏洞就是利用包裹的有限空间,存放47件装备(存放满了又无法开罐子),只留下一格空位,而在开“云幂袖珍罐”出装备时,就会因包裹空间不足,而导致开罐失败,而罐子还存在。玩家继续开罐,直到出现金币,但金币不会占据包裹的空间,因此开罐成功,然后罐子消失。发现这个漏洞后,部分玩家狂刷游戏币,然后马上在第三方交易平台出售游戏币,兑换成现金。&/blockquote&这种问题,都是研发人员逻辑不严谨导致,这种问题,也较难发现。规避方式可以依赖下面提到的『运营数据监控』。&br&&br&&b&道具复制--背包整理&/b&&br&跟上面的卖出、买入一样,同时穿装备、整理包裹。在设计时,可能会将身上装备设计在装备表中;将不在身上的装备,设计到背包表中。当同时进行穿装备跟整理包裹的请求并发时,也会发生跟上面卖出,买入的情况,线程1读取DB,发现包裹里有这装备,然后准备删除背包表的这条记录,当准备写入到装备表时,另外一个整理包裹请求的线程来了,读取了整个背包表,进行道具的合并、排序。这时,之前的线程将这个装备写入到装备表,并删除了背包表里的数据,并提交事务。这个穿装备的所有操作都是合理、正常,且正确执行的。但另外一个整理背包的线程读取了之前的背包表里的数据,包括那件被穿上的装备。在游戏中,整理背包需要对可堆叠道具做堆叠操作的,意味着需要合并多个道具,删除部分道具。这意味着这里的操作,当前cgi线程的内存中的数据,将都会以覆盖的形式,写入到DB中,那么意味着,之前被穿到身上的那件装备,也会重新被写入到背包中。那就变成两张表里出现了两个相同唯一ID的相同属性的道具。玩家就可以把背包中的这个道具出售给其他玩家。&br&&br&在java或者C之类程序中,数据放内存中的游戏,也会存在这个问题,除非做读锁,但读锁会带来锁等待,锁等待会导致线程被占用,阻塞后面请求的处理,堆积大量请求。导致系统负载升高,服务器繁忙,以至于无法响应。好了,大约理解道具复制的形成原因了吗?这个问题,我们从根本原因想想,问题到底出现在哪里?如何规避呢?细心的同学不难发现,对于穿装备的操作结果,会对下一个请求产生影响的,当前操作未得到服务端响应之前,服务端是不能处理下一个响应的。对此,我们做了响应处理锁--『用户并发请求锁』。&br&&br&用户并发请求锁的实现,php中session以文件形式存储时,php会对session文件加锁,不释放(如果不特意执行session_write_close),知道当前响应完成。另外一个线程才可以正常读取,这简介的形成了单个用户的并发请求锁,但是,后面的进程一直处于等待状态,也会占用一个php-fpm进程,阻塞其他用户的正常请求对php线程的使用。为此,我们使用NOSQL的K-V形式结构,以user_name为key的形式,实现用户并发请求锁,比如 redis的setnx接口,原子性判断操作有则返回false,,没有就添加一个,返回true。那么,对于下一个请求,setnx时,返回false,有这个key了,那么立刻抛出异常,结束响应,FLASH根据异常内容,提醒用户不要进行恶意操作。即不会发生并发请求,又不会阻塞请求处理。同时,在请求结束的析构函数里,对这个锁进行删除操作,不影响下一个正常请求。若因为程序异常,发生语法错误,导致析构函数没法执行,没有删除用户锁时,可以在生成锁的时候,设置过期时间,比如5秒,甚至2秒,利用nosql的过期机制,实现用户解锁,避免用户长时间无法正常游戏。&br&&br&&b&类CC攻击-多用户共享资源锁的timebomb&/b&&br&我们现在研发的项目,是以NOSQL Redis作为DB,来存储数据的,redis并没有成熟的事务处理机制,watch甚至算不上关系型数据库中的事务处理。对此,更需要对表进行加锁解锁。java之类语言的项目,很多都是直接操作内存的,更是需要资源锁,来解决并发问题,解决多个请求操作同一份数据的问题。公司有另外一个项目,出现过一次因为锁的颗粒度较大,带来的锁等待timebomb的问题,也导致了线程繁阻塞忙,请求堆积,系统负载上升,导致宕机的问题。这个项目的锁是针对所有用户的锁,每个用户的请求发来时,当前线程会对所有用户的数据加锁,直到响应完成,才释放掉。这么做,是为了解决因当前操作,会影响到其他用户数据,比如多人PK,多个玩家之间的交互。&figure&&img src=&https://pic3.zhimg.com/3e703f8e590e545e0fa0b5a46183fa5e_b.jpg& data-rawwidth=&746& data-rawheight=&363& class=&origin_image zh-lightbox-thumb& width=&746& data-original=&https://pic3.zhimg.com/3e703f8e590e545e0fa0b5a46183fa5e_r.jpg&&&/figure&&br&当其他请求一并发来时,那么资源会立刻被锁住,直到上一个请求结束,才释放锁,那么其他线程都处于等待状态。用户基数小时,是看不出来锁带来的影响的,内存操作都比较快。当用户基数大时,或者说请求数增大时,后面的请求的等待时间会越来越长,超过webserver的等待时间,直接返回timeout,不能正常提供服务。&br&&br&这种问题的发生,是因为锁的颗粒太大了,不应该将所有用户都锁住,最好细化到当前请求所影响到的单个用户,只锁住单个用户的数据。这样,才减少timebomb的发生。&br&&br&另外,&a class=&member_mention& data-editable=&true& data-title=&@余弦& data-hash=&afea1df0fc2b1fd51e9ca04d8b166f80& href=&//www.zhihu.com/people/afea1df0fc2b1fd51e9ca04d8b166f80& data-hovercard=&p$b$afea1df0fc2b1fd51e9ca04d8b166f80&&@余弦&/a& 提到很多webgame 的前端做了判断,而后端没做判断的问题,这种问题,实属不该存在。在我们的项目中,后端做的验证判断,远比前端多的多。有时候,为了界面上的动画表现,前端flash一般会在用户操作之后,立刻渲染,然后,再根据后端响应,决定是否继续做界面元素改动。比如脱装备,玩家操作时,会先渲染装备从角色面板,跳到背包里的动画,然后,再根据后端响应结果,决定是否回滚动画。这样,避免显得操作后,一定时间的反映迟钝假象,以提高用户体验。当然,后端是一定会做判断的,判断角色背包是否有空格之类。现在的webgame研发,一般都不会存在前端判断,而后端不判断的做法了。如果有,也应该是个别遗漏情况。&br&&br&&b&其他&/b&&br&去年的time33算法的hash dos的问题,使用json消息格式的webgame一定要注意,php只是在接收请求时,做了最大数量的限制。但在json解码之后的数据中,是没有处理的。这里千万别忘记了。&br&&br&&b&运营数据异常监控&/b&&br&再完善的防御措施,都仍会有安全漏洞。适当的监控措施,也一定要有,监控等级、金币、游戏币、经验、珍贵物品的变化等等,一旦发现,立刻报警,在漏洞未扩散之前,第一时间去修复漏洞,以减少损失,维护游戏平衡。&br&&br&--------------------------------10-16 21:08补充---------------------&br&&b&日志&/b&&br&日志系统一定不能漏掉,所有操作,必须写入日志,当安全事件发生后,可以作为各种数据回滚,交易纠纷处理的可靠数据。也是作为数据监控的最准确的数据来源。&br&&br&--------------------------------10-18 16:05补充---------------------&br&补一个真实的故事。去年6月份,我们项目新上线一个系统,以及腾讯充值接口V2升级V3,涉及充值代码改动,研发测试、策划测试、QA测试完毕之后,上线到个别服务区,观察情况。每次新版本上线,整个项目组都会持续观察数据情况,尤其是充值总额, 10、50、100的涨,突然,总额下降了。充值总额下降了,这可是总额啊,只能增加,是不会下降的。肯定哪里有BUG,DBA直接看binlog,查充值记录相关的SQL语句,最后发现充值系统的sql语句为&b&UPDATE table set gold_num = $num,is_pay =1&/b& ,没有WHERE,没有WHERE啊,多么弱智的BUG,这尼玛能容忍么?肯定要拉出来,弹JJ弹到死。当我从SVN日志中看到涉及这个文件的修改者时,我立刻石化了,悄悄的修了bug,默默的上传......&br&&figure&&img src=&https://pic1.zhimg.com/7edc931b5268afa2d51f594_b.jpg& data-rawwidth=&1280& data-rawheight=&801& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/7edc931b5268afa2d51f594_r.jpg&&&/figure&&br&事情是发生了,原因很弱智。是我自己,忘记写where条件,由于框架封装了,问题并不容易被发现。而且自己测试充值都是正确的,包括后来的策划测试、QA测试,都没有发现问题。所属功劳,就是“&b&数据监控系统&/b&“,所以,我们游戏开发商,第一时间,比用户还早的发现了问题所在。数据监控,一定必不可少。&br&&br&至于修复方案,那要感谢日志系统。每笔充值,都有双份日志,一是各个游戏大区自己的DB中。二是充值中心中。充值中心负责跟其他各大平台对接。这次的事故,影响游戏大区的数据,并未影响到充值中心数据,故可以有据可查。这样,伟大的DBA可以更便捷、放心的修复数据了。对此,不管发生其他刷钱、刷装备、盗号之后的交易纠纷,都可以依赖日志来做处理。日志系统,也一定必不可少。&br&&br&从新功能发布,到发现BUG,到修复BUG,总共历时不到1小时(svn时间可以看出来,16:30对外的),可想而知,数据监控的效果多么值得称赞。新功能上线时,各个测试环节要去做。按大区服务器,做灰度发布也可以更小的减少bug影响范围,减少损失。&br&&br&---------------------------------10月22日 更新------------------------------------------------&br&&b&协议与外挂&/b&&br&本问题的目标是『网页游戏』,『网页』意味着的用浏览器。使用浏览器与服务器通讯的游戏,才能成为浏览器。而浏览器支持普通的http协议的基本网页数据通讯,支持以socket协议的flash插件或者java Applet实现,以及unity3D开发的游戏。就目前业界流行做法上,flash插件做客户端的占了一多半。unity3D的客户端源码安全性我不清楚。flash的源码,众所周知,很容易逆向出来。比如回答者&a class=&member_mention& data-editable=&true& data-title=&@Seraph& data-hash=&6d7d82ec45bc6a3bcc630& href=&//www.zhihu.com/people/6d7d82ec45bc6a3bcc630& data-hovercard=&p$b$6d7d82ec45bc6a3bcc630&&@Seraph&/a& 提到博客 &a href=&//link.zhihu.com/?target=http%3A//www.gungov.com/%3Fp%3D10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Seraph's Blog&/a& 中所写方式逆向还原出flash源码。当源码很容易被拿到后,那么通讯协议的消息格式,也是一览无余,那么各种外挂实现起来,易如反掌。&br&&br& 在我们项目中,对于外挂的态度,一般都是放在最后考虑。当项目前期,没有多少知名度,也没盈利时,我们开发商是不会把精力放到防外挂上的。而且,天下攘攘,皆为利往,同样的外挂编写者也会认为这无利,会无视它。当然,也不是无视外挂的存在,我们一般这么对待它:&br&&ol&&li&策划初期,减少重复性劳动的玩法,以免玩家感到疲劳,给与外挂市场。若重复性不高,那么外挂可用性也就差。&/li&&li&游戏本身提供一些内挂,替玩家实现重复性劳动。&/li&&li&前后端都是统一网关,后期实现协议加密也比较简单,快捷。抵挡住初级外挂编写者,当然,中国人才济济,大牛多多。&/li&&li&定时更换通讯密钥,增加外挂编写者的劳动量。&/li&&li&游戏内部机制限制,比如体力值。&/li&&li&人肉判断,验证码之类(网页游戏目前还没火到这个地步)。&/li&&/ol&&br&其实,网页游戏中的最大、最多的漏洞,几乎都是游戏业务金币复制、装备复制等技术性漏洞,以及游戏业务判断不严谨、条件不合法之类的逻辑漏洞,而常见的web漏洞在网页游戏里,显得并不突出,种类数量也少,也较为容易发现,修复。&br&&br&=============================日更新================&br&&br&&b&我不知道这个回答会不会还有人看到,因为这不是一个新的回复,不会出现在各位的消息提醒中,可能不会涨粉,但我觉得还是有必要在更新一下,希望以后通过搜索,看到这篇文章的同学,对你们有帮助。SO,我还是更新一下。&/b&&br&&br&又一起webgame中的刷道具的问题,问题发生在背包内道具移动的业务上:&br&&br&&ol&&li&当从A位置移动到B位置时,若两者是同一类型,且可叠加(两者都是绑定或不绑定),则叠加数量到其中一个上,并销毁另外一个。&br&&/li&&li&若不是同一类型,或不可叠加,则两者呼唤位置。&br&&/li&&li&若目标位置为空,则把物品从A移动到B。&/li&&/ol&如果这个功能由你看写,你如何写?&br&&br&程序员的代码在 &a href=&//link.zhihu.com/?target=https%3A//gist.github.com/cfc4n/b7d794d3cb663dd86aad& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gist:b7d794d3cb663dd86aad&/a&&br&&br&&div class=&highlight&&&pre&&code class=&language-php&&&span class=&x&& /**&/span&
&span class=&x&&
&span class=&x&&
* 背包内道具移动&/span&
&span class=&x&&
* @param string $former
源位置格子号&/span&
&span class=&x&&
* @param int $target
目标位置格子号&/span&
&span class=&x&&
&span class=&x&&
public function MoveItemAction($former, $target)&/span&
&span class=&x&&
&span class=&x&&
$former = trim($former);&/span&
&span class=&x&&
$target = intval($target);&/span&
&span class=&x&&
if(!$former || $target & 1)&/span&
&span class=&x&&
&span class=&x&&
return $this-&_view-&error(MLanguages::COM__PARAMETERS_NOT_LEGAL);
//参数异常;&/span&
&span class=&x&&
&span class=&x&&
&span class=&x&&
//获取道具信息&/span&
&span class=&x&&
$former_item = $this-&__mItems-&getNumberItem($former);&/span&
&span class=&x&&
if(!$former_item)&/span&
&span class=&x&&
&span class=&x&&
return $this-&_view-&error(MLanguages::PACK__NOT_EXIST);
//使用道具不存在;&/span&
&span class=&x&&
&span class=&x&&
&span class=&x&&
$former_md5id = $former_item['md5_id'];&/span&
&span class=&x&&
$former_num = $former_item['number'];&/span&
&span class=&x&&
$former_base = $former_item['item_id'];&/span&
&span class=&x&&
$former_sup = $former_item['superpose'];&/span&
&span class=&x&& &/span&
&span class=&x&& &/span&
&span class=&x&&
//开启事务&/span&
&span class=&x&&
$this-&__mRole-&beginTrans();&/span&
&span class=&x&&
$target_item = $this-&__mItems-&getNumberItem($target);&/span&
&span class=&x&&
......&/span&
&/code&&/pre&&/div&&br&其出现问题部分就是如上这些,大家看代码时,会认为这前期的判断都是正确的,符合业务逻辑的,问题却发生了“来源格子”跟“目标格子”的判断,没有判断这两个参数是不是同一个位置,若是同一个位置,那么上面的所有业务逻辑判断都是合法的,下面的代码中,将根据这“两个”道具的属性进行堆叠,然后就发生了道具复制的问题.....&br&&br&修复方法想必大家都会,就是判断来源位置目标位置是否相同&div class=&highlight&&&pre&&code class=&language-php&&&span class=&x&&if(!$former || $target & 1 || ($former == $target)) //判断来源位置目标位置是否相同&/span&
&/code&&/pre&&/div&&br&&b&如果是你,你会犯这样的错误吗?&/b&&br&&br&以上为鄙人的游戏研发经验,欢迎讨论。时间仓促,再加上感冒前期症状,轻微头晕,难免思维混乱,敬请谅解。 此回答禁止转载,代码高亮效果不理想,其他格式没有。鄙人BLOG中文章
&a href=&//link.zhihu.com/?target=http%3A//www.cnxct.com/experience-with-webgame-of-security-and-defense/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&webgame中常见安全问题、防御方式与挽救措施&/a& 可以转载,但务必遵循博客所示协议。&br&&a class=&member_mention& data-editable=&true& data-title=&@葛巾& data-hash=&2dfc9eff7542eb& href=&//www.zhihu.com/people/2dfc9eff7542eb& data-hovercard=&p$b$2dfc9eff7542eb&&@葛巾&/a& 大神能给个赞么?&br&&br&葛大神点赞了,居然看到了,居然点赞了。内牛满面。
谢邀。。。。 压根没人邀请我,好像这个词成为知乎的通用开篇词语。 十月一的假期间,看到这个问}

我要回帖

更多关于 冰心简介 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信