XSS(Cross-site request forgery)跨站请求伪造
核心原理
攻击者通过表单,提交了一段带有攻击性的JS代码作为用户要提交的数据。
我们的服务器会把它存起来。
当这段数据被加载到浏览器中渲染时,会被浏览器无条件的当成HTML代码(With JS)来执行渲染。
防范实践
防范手段
对从数据库中读取的数据,进行URL转义处理;
而不要:存的时候进行转义;
我们的原则一般是:尽量保持信息不丢失。
输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。
注意:
二叉树中每个节点的值都互不相同;
输入的前序遍历和中序遍历一定合法;
样例
给定:
前序遍历是:[3, 9, 20, 15, 7]
中序遍历是:[9, 3, 15, 20, 7]
返回:[3, 9, 20, null, null, 15, 7, null, null, null, null]
返回的二叉树如下所示:
3
/ \
9 20
/ \
15 7
1 | /** |
在一个文件中有10G个整数,乱序排列,要求找出中位数。内存限制为2G。
回答:
不妨假设10G个整数是64bit的。2G内存可以存放256M个64bit整数。
我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数。
如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数。
如果这个范围内出现的整数比较多,我们还可以采用同样的方法将此范围再次分成多个更小的范围(256M=2^28,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)。
注解:先按取值范围将数据保存到对应文件,并统计每个文件有多少数值,然后计算第5G和5G+1个数在哪个文件,继续对该文件重复上述步骤
输入一个32位整数,输出该数二进制表示中1的个数。
注意:
负数在计算机中用其绝对值的补码来表示。
样例1
输入:9
输出:2
解释:9的二进制表示是1001,一共有2个1。
样例2
输入:-2
输出:31
解释:-2在计算机里会被表示成11111111111111111111111111111110,
一共有31个1。
1 | class Solution { |
2021.02.24
《创新者的窘境》颠覆式创新
任何人和企业,都由三部分构成:资源、流程、价值观
资源的有无和多少,决定了你的自由度
流程是为了有效率地到达目的地的一种优化的途径
价值观是我们做选择、做抉择的依据。
原罪:你生来就有,但你自己又不知道的缺陷。
人生来就有的原罪:你看到的世界实际上是你构造的世界;你打造的产品是被你的世界观和方法论支配的产品。
不要面对客户(你的客户就是你的枷锁)而应该与客户肩并肩同行,去尝试还原他们的世界,才能做出在他们的世界中管用的产品。
让自己的世界观变得更加复杂,更加高级,从单一世界变为平行世界,从单调世界变成复调世界。
一个人同时保有两种相反的观念,还能自由行事,这是第一流智慧的体现。
云计算,源于电网,像一个水库,最大的水库是云。
所谓预言,只是他看到了很远的过去。你想看见多久的未来,就要看清楚多远的过去。任何一个新的世界都包含着一个旧的世界。表面上是新世界在运行,其实是旧世界在过去已经发生的事情,在今天改变了形态在发生。
在这个忙碌的世界的背后,其实是有简单的、更本质的要素、模式、力量存在的。
我始终关注未来,因为我的余生将在那里度过。为了关注未来,我必须密切的关注过去。我们看待商业世界的方式:反复看、往回看、最终向前看。
第一点:一种全新的思维方式:TAG思维
创新的源头
tag思维 VS Label思维,从层级到光谱
第二点:一种可以支持快速创新的组织架构:大中台,小前台
三台一体
大中台,他存储了足够的资源和能力,提供的是一种模块化的半产品,供小前台使用,快速搭建一个全新的产品。
诺基亚的模块化生产
内循环的两重驱动力:
内需:最主要的目的是去消化国内的巨大产能(因为国外金融危机没有能力去消费国内的产品)
内供,自己供应(之前都是通过进口来满足内部需求),自己消费;如果可以的话,还可以出口。
为啥消费会升级? 为啥消费需要被升级?
因为中国大的目标是截止到某个时候中产阶级翻一番,从3亿到6亿;有钱人变多了,消费自然要升级。
食:本地快消品,吃点好的
一点思考:大家越来越不在乎钱了,大家更注重品质;大家又不是完全不在乎钱,如果你能够设定一个价值锚点,让用户觉得占了便宜,大家还是会很乐意去买单的。
第一点,关乎大家的收入增加了,钱包鼓了
第二点,关乎人的本性,这是刻在基因里的,没那么容易改变。
精神消费:文化娱乐、游戏、心理服务、宠物、陪伴、旅游
以上是中等人
以下是上等人的高端消费,会发生中国化,规模性的国产替代。
2000+的酒,如果没有茅台,有钱人会考虑二锅头吗? 不会,他们会考虑国外的高档酒。
如何才能消费升级?产业升级是基础,是消费升级的先决条件。
产业升级,简而言之就是让大家做更有技术含量的工作,例如消费升级、科技、医疗健康、先进制造
有几个大的方向:
1)通过技术,促进传统行业的整合,形成某个行业的巨头?例如养猪
2)医疗健康?老龄化问题
3)科技:芯片、5G、新能源;
还有双循环,中国那些产业可以出海?优势何在?
资产升级
产业升级带来的资产,除了满足消费升级,如果还有盈余呢?势必会带来资产的升级:
过去以及现在,主要资产是房产。未来呢?
1)流动性更高的基金、权益类资产(新的一代,理财意识的提升 + 房价太高了)
2)数字资产(比特币, 实体资产的数字化、个人行为数据)
3)数字人民币?
元气森林-无糖饮料
越来越多的“+酒”饮品
如何创新:通过要素的另类组合,去开拓新的品类,去开发消费者新的需求。
而不是一定要去红海中竞争,去抢更大的蛋糕。
为啥淘宝上挖掘机卖的那么好?
挖掘机是农村人才有会的需求,卖的特别好,起码说明:农村人会上淘宝了
一开始农村人是在淘宝买东西的(农产品等),供应方;
可能哪一天意识发生了转变,我是否可以买到自己想要的东西? 不太靠谱。。
一些海外企业在淘宝上做测试,测试自己的产品是否适合中国市场?
1)贸然进入一个市场是有很大风险的(收入可能覆盖不了成本);借助互联网思维,最小可用产品?
淘宝直播,卖锦鲤?卖乌龟?卖活物?
哪些东西适合直播带货?
1)吃的,容易勾起大家的食欲
2)宠物,直播更加生动
3)化妆品, 让人感觉更加真实,前后差别?
一单生意之所以成交不了,最主要有两方面:信息不对称、信任不对称。
直播带货之所以能火,一定是某件商品通过带货这种特殊的售卖方式,信息得到了更好的传递?建立了更好的信任?
如果一个行业集中度比较低,说明这个行业没有形成垄断。而对于行业中的某一家公司而言,就有更大的市场潜力。
一个行业的产业链有什么组成? 产业链上的利润分配如何?
例如生猪行业:最下游是养猪的,上面是杀猪的,在上面是猪肉分销。
利润分配方式取决于供应链上的主体的行业集中度。
对于美国,杀猪的CR5是83%,集中度较高,所以话语权在杀猪企业,所以杀猪企业的利润更高;
而中国,养猪的CR5 6.4%, 杀猪的CR5 5.5%, 养猪的利润更高;为啥呢?
再往下的话,就是消费者了。
一个杀猪的,当天当地没有那么多杀(因为消费者喜欢吃新鲜的),所以就没有动机去扩大规模。
而美国人,可以吃冷鲜肉,肉制品,这个可以直接由中下游企业来满足。
为什么猪肉这个行业的集中度那么低呢?
因为中国人喜欢吃新鲜的猪肉,地域限制,服务半径,其他地方送过来的猪肉新鲜度不够了? 强龙压不过地头蛇?
产业链上的企业之间什么时候会发生整合?有哪些整合方式?是上游整合下游,还是下游整合上游?分别适用于什么情况?
(1)技术壁垒高的 整合 技术壁垒低的企业
(2)离消费者更近的 整合 离消费者远的(在中国,中国对生猪肉的要求更高;而美国,对各种各样的猪肉制品要求更高)
为什么最近大家(一些互联网大厂)都争相去养猪了?
环保要求,这个属于政策对商业的影响,这种环保要求,会让“养猪”需要更高的技术!
因为非洲瘟疫,散户们养的猪都死了,猪肉涨价大涨。这个事情就引发了大家的思考:
养猪是一个技术活,例如防疫呀,清洁呀,这些东西都需要技术研发,需要资金,不是所有的散户都搞得起。
然后大公司恰好有资本去做这种长周期的投入。最后靠技术上的优势,取得更大的市场份额,从而获得更高的收入。
台积电 给 华为 提供芯片, 20%的产能都是华为消化的;但是台积电的核心技术都是美国的专利,并且最大的股东是一家美国企业。所以听美国的,给华为断了供。
中国的产业升级是外在因素推动的,还是内部也有实力推动? 答案是后者。那么中国究竟有啥优势呢:
1)全球最大单一市场(量大了,会形成绝大的规模优势,从而大幅降低生产成本。成本低了,就有钱去高价雇佣最牛的人才!)
2)人才红利—-注意不再是人口红利
人口红利对应着成本耕地的劳动力,现在相关产业已经外溢到了越南、柬埔寨等东南亚国家。
人才红利,体现在,我们只需要花200W就能雇佣一个很牛B的人;而在国外,足够牛B的人要花的钱远远超过200W..
3)大基建(工业基础设施-交通网、网络基建-移动通讯网、能源网)
4)产业链又大、又长、又全(大,是由于市场大;长,是说从最上游到最上游,包括了所有环节;全,是说品类齐全)
举个例子,汽车产业链:钢材=》零配件=》整车 =》汽车金融 =》销售等
相比国外,如果国外企业完全退出中国市场,国外企业的利润率可能会下降5~8%个百分点。
经纬中国
1)相比传统燃油车,造电动车的技术门槛降低
传统燃油车的核心技术:发动机、变速箱等;一般的公司没有这个技术!
电动车的核心技术:电池
2)电动车使用电作为动力,让汽车更加智能化,整个车就是一个完整的系统(相比燃油车,是N个子系统,整合性差)
尤其是中国,市场大,数据积累更加丰富,有助于自动驾驶的测试验证
—-一个完整的系统的弊端:被黑客入侵,一挂全挂?而之前的独立系统不会出现类似的问题。
汽车的供应链很长,如果汽车行业发展能够大大激发我国的制造业潜力!
蚂蚁金服,蚂蚁科技 — 一家数字基建
蚂蚁的愿景:让信任等于财富! 蚂蚁最重要的资产是什么:是数字和技术吗?其实是信任!!
蚂蚁的收入来源:
1)数字支付与商家服务,服务于个人,36%
2)对银行、信托等金融企业的咨询服务费用,服务于企业,60%——利用数据来赚钱,这个是科技公司做的事情:用户触达、风险管理等
3)其他-区块链、数据库等,5%
蚂蚁本质上是一家解决问题的公司,他解决的问题都是哪些在现有的能力基础上,跳一跳能够得到的问题。
解决了哪些问题:
1)担保支付——解决了商家与用户之间的信任不对称问题
2)快捷支付—-解决了网银支付不方便的问题
3)310小微企业贷款—在阿里云(成为了技术基石)上实现100W以下的小额带宽,3分钟申请,1秒钟放款,0人工介入
4)余额宝—让天虹基金把准入门槛降到了1元
对自己技术的倒逼,可能会变为价值巨大的产品!

经济需服从政治
广告主 广告平台 流量端
CPC、CPS
Cost Per Sale
京东联盟
淘宝联盟
多多进宝
蘑菇联盟
当当网联盟
唯品会联盟
垂直细分
晋升,不仅仅是对你过去工作价值的认可,更是对你未来工作价值的预期。
晋升三要素:
(1)出色的业绩 -》 业务足够出色 =》承担更大的责任,获得更大考验的机会
(2)职场领导力 -》 承担更大的责任,调动更多的资源,领导更大的团队 -》 提升整个团队的价值
(3)职场能见度 -》 能力让其他人看到,得到他们的公认(晋升一个人,疏远所有人) -》 只有能得到别人的认可,才可以调动跨团队的资源,从而做成更大的事情
谁在决定你的晋升:
评估者(小老板)—-给出晋升评估方案(每一个直接下属的业绩表现、领导力、价值观等,提报晋升的候选人)
决策者(大老板)—-全局统筹安排,确定最终候选人,进入晋升评估期
影响者(平级、合作伙伴)—-他们对你的态度会影响评估者、决策者
晋升的三个雷区:
(1)如果有跟大老板合作的机会,千万别把事情搞砸了(千万不要让老板给你打上一个负面标签)
(2)远离耀眼,不要在背后评论你的职场伙伴
(3)不要在职场考察期松懈
出色的业绩-如何更加聪明的工作
出色的业绩 = 客观的数字或者案例更加有说服力
第一点:做正确的事
(1)跟上级一起沟通你的工作重点,并且定期沟通;当你的精力被其他工作占据过多的时候,必要时跟上级领导反馈和沟通,请他帮你减轻负担或者梳理优先级
(2)处理临时接到的任务时,跟老板确认他的期望
第二点:正确的做事
(1)不要重复造轮子(你要相信,这个问题肯定不是你第一个遇到)
(2)成为改进者(通过改进,选择更多一些,速度更快一些,质量更好一些,成本更省一些)
Why-Why分析法,多问几个为什么,定位到问题的原因,然后分析改进
(3)及时复盘(罗列这一次我们做的好的三个长处,做的不好的两个短处)
职场领导力-给周边小伙伴带来:
(1)方向感-大局观
原则1: 先目的后措施;先分类后解决;先整体后细节
原则2: 比你目前的级别更高一级去思考问题
基层:完成当前执行细节;中层:完成某个项目或者任务(进度);高层:企业业务模式(安排资源和进度)
(2)能量感-赞美和驱动
赞美公式:“你做的很好”, 你为什么做的这么好,我内心的感受
批评公式:你今天哪里做的不好,为什么我认为做的不好,我内心的感受
赞美/批评要及时
正面的感受表现出来;负面的感受表达出来
驱动力:推着老板、同事、客户、项目前进的主动力量
手头上的工作,每到一个节点,主动跟同事和上下级沟通,说清楚需要什么样的配合和协助,以及,及时分享好消息
让别人觉得,他要做的事情,就是他自己的重要的事情(利益共享|头脑风暴,让伙伴觉得他要做的事情是他自己的想法)
(3)信任感
职场资源有限,会被别人抢资源,来提升自己的业绩;遇到这种情况,我们的原则应该是:好合作、有原则、敢反击
首先释放善意,但如果对方做了对不起你的事情,需要敢于捍卫自己的权利,要为自己的组织去争取;最后,从自己利益最大化的角度,去选择反击或者原谅他。
职场能见度-影响力
(1)让你的名字与一个正面能力挂钩
明确自己的统治区域,到处传播,让别人一遇到问题就想到你
不要自己给自己搭上负面标签,永远不要说自己不行
(2)参加跨部门合作的公司级项目,让更多同事认识你
招聘、培训、运动会等
(3)找到职场导师
首先你得行,其次得有人说你行,最后说你行的人得行
如何让他们帮你:(1)通过具体事情,寻求他们的帮助(2)说清楚“你自己想做什么 + 遇到什么困难”
(4)穿的高级一点
(5)营销自己的业绩
经验总结会、内部邮件分享
把握外部晋升机会-主动跳槽
能实现更高的“职场价值”
原因:
(1)公司成长快,业务好,但是轮得到你嘛?
(2)公司目前成长快,但是将来有可能会被取代。
只要。。。。就。。。
只有。。。。才。。。
==============
互联网
梁宁·产品思维30讲
梁宁·增长思维30讲
《增长黑客》
《俞军产品方法论》
启示录:打造用户喜爱的产品
人人都是产品经理
结网
最新的商业信息
蔡钰·商业参考(年度日更)
吴伯凡·每周商业评论(年度周更)、 伯凡 · 日知录
万维钢·精英日课⁴(年度日更)、万维钢·精英日课³、万维钢·精英日课第二季、万维钢·精英日课第一季
吴军·硅谷来信³(年度日更) 、吴军·硅谷来信、硅谷来信²·谷歌方法论
卓克·科技参考(年度日更)
商业
刘润·商业通识30讲
5分钟商学院·基础
5分钟商学院·实战
刘润·商业洞察力30讲
贾宁·财务思维课
年度得到·香帅中国财富报告
香帅中国财富报告25讲
自我提升
吴伯凡·认知方法论
吴军·阅读与写作50讲
蔡钰·批判性思维15讲
何帆的读书俱乐部
超级个体
30天认知训练营第二季、30天认知训练营第一季
经济学
薛兆丰的经济学课
何帆·宏观经济学30讲
年度得到·何帆中国经济报告
何帆中国经济报告2019-2020
何帆中国经济报告2018-2019
金融学
香帅的北大金融学课
何帆大局观
余剑峰·行为经济学
张潇雨·个人投资课
张晓燕·风险管理课
李笑来·通往财富自由之路
自然科学
吴军·数学通识50讲
吴军·信息论40讲
吴军·科技史纲60讲
刘嘉·概率论22讲
卓老板聊科技
卓克·科学思维课
管理学
宁向东的管理学课
熊太行·关系攻略
有效提升你的职场价值
谈判能力:
沟通能力:
政治学
刘擎·年度思想前沿报告
刘擎·西方现代思想
施展·国际政治学40讲
法律
刘晗·法律思维30讲
心理学
武志红的心理学课
刘嘉·心理学基础30讲
听书系列
镇馆之宝
《增长黑客》| 广行解读
《疯传》| 无锋解读
《原则》| 远读重洋解读
最新的商业信息
蔡钰·商业参考(年度日更)
吴伯凡·每周商业评论(年度周更)、 伯凡 · 日知录
万维钢·精英日课⁴(年度日更)、万维钢·精英日课³、万维钢·精英日课第二季、万维钢·精英日课第一季
吴军·硅谷来信³(年度日更) 、吴军·硅谷来信、硅谷来信²·谷歌方法论
卓克·科技参考(年度日更)
商业
刘润·商业通识30讲
5分钟商学院·基础
5分钟商学院·实战
刘润·商业洞察力30讲
贾宁·财务思维课
年度得到·香帅中国财富报告
香帅中国财富报告25讲
互联网
梁宁·产品思维30讲
梁宁·增长思维30讲
自我提升
吴伯凡·认知方法论
吴军·阅读与写作50讲
蔡钰·批判性思维15讲
何帆的读书俱乐部
超级个体
30天认知训练营第二季、30天认知训练营第一季
经济学
薛兆丰的经济学课
何帆·宏观经济学30讲
年度得到·何帆中国经济报告
何帆中国经济报告2019-2020
何帆中国经济报告2018-2019
金融学
香帅的北大金融学课
何帆大局观
余剑峰·行为经济学
张潇雨·个人投资课
张晓燕·风险管理课
李笑来·通往财富自由之路
自然科学
吴军·数学通识50讲
吴军·信息论40讲
吴军·科技史纲60讲
刘嘉·概率论22讲
卓老板聊科技
卓克·科学思维课
王立铭·生命科学50讲
给忙碌者的量子力学课
孙亚飞·化学通识30讲
科学人物课-冯诺依曼、霍金、费曼、杨振宁
前沿科技·吴军讲5G、量子计算、人体微生物组9讲、新药研发课、
管理学
宁向东的管理学课
熊太行·关系攻略
有效提升你的职场价值
谈判能力:
沟通能力:
政治学
刘擎·年度思想前沿报告
刘擎·西方现代思想
施展·国际政治学40讲
法律
刘晗·法律思维30讲
心理学
武志红的心理学课
刘嘉·心理学基础30讲
听书系列
镇馆之宝
《增长黑客》| 广行解读
《疯传》| 无锋解读
《原则》| 远读重洋解读
CSRF(Cross-site request forgery)跨站请求伪造
浏览器在请求接口时有如下机制:
浏览器请求某域名下的某个接口时,会自动带上该域名下的Cookies,而不管发起请求的页面是究竟在在哪个域名下。
基于以上机制,攻击者只要有目的的部署自己的攻击方式,便能够让真正的用户在不知情的情况下完成某些操作,例如:给攻击者点赞、给攻击者转账等。
攻击方式:
HTTP头中有一个Referer字段,这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时,通常来说,Referer字段应和请求的地址位于同一域名下。以上文银行操作为例,Referer字段地址通常应该是转账按钮所在的网页地址,应该也位于bank.com之下。而如果是CSRF攻击传来的请求,Referer字段会是包含恶意网址的地址,不会位于bank.com之下,这时候服务器就能识别出恶意的访问。
这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的Referer字段。虽然http协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其Referer字段的可能。
CSRF大多数情况下来自第三方域名,但并不能排除本域发起。如果攻击者有权限在本域发布评论(含链接、图片等,统称UGC),那么它可以直接在本域发起攻击,这种情况下同源策略无法达到防护的作用。
Chrome 51开始,浏览器的Cookie新增加了一个SameSite属性,用来防止CSRF攻击和用户追踪。Samesite有三个可选值,分别为Strict、Lax、None。
Strict:最严格模式,完全禁止第三方Cookie,跨站点访问时,任何情况下都不会发送Cookie。换言之,只有当前网页的 URL与请求目标一致,才会带上Cookie。
此方式虽然安全,但是存在严重的易用性问题,用户从第三方页面访问一个已登录的系统时,由于未携带Cookie,总是需要重新登录。
Lax:Chrome默认模式,对于从第三方站点以link标签,a标签,GET形式的Form提交这三种方式访问目标系统时,会带上目标系统的Cookie,对于其他方式,如 POST形式的Form提交、AJAX形式的GET、img的src访问目标系统时,不到Cookie。
None:原始方式,任何情况都提交目标系统的Cookie。
由于Samesite是Google提出来的,其他浏览器目前并未普及,存在兼容性问题,目前不推荐使用。
由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在Cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击。这种数据通常是Form表单中的一个数据项。服务器将其生成并附加在Form中,其内容是一个伪随机数。当客户端通过Form提交请求时,这个伪随机数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过CSRF传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验token的值为空或者错误,拒绝这个可疑请求。
CSRF Token需要服务器端对提交的请求进行验证,一般CSRF Token以Session参数的形式保存在服务器端。对于分布式应用,使用分布式Session来管理的难道比较大,可以考虑把Token保存在Redis等分布式缓存中。
双重Cookie验证
上述CSRF Token方式,需要在服务器上保存Token值,并对请求参数进行校验,增加了服务器端的复杂度。双重Cookie验证的原理是在Cookie中保存Token值,同时在Form表单中也提供该值,请求提交时,Cookie和Form表单中的Token同时提交,服务器端只需要对请求中的两个参数进行校验即可,省去了在服务器端维护Token的步骤。
由于Cookie的安全限制,只能在本域名或子域名下访问到Cookie值,兄弟子域名无法访问到,如a.bank.com域名下的Cookie,只能被a.bank.com,sub.a.bank.com访问,无法被b.bank.com访问。对于分布式应用,可能需要在多个子域名中提交请求,所以一般需要把Cookie保存在根域名bank.com中。不过此方式存在安全风险,如果任何一个子域下的页面存在XSS攻击,可导致根域名下的Cookie被篡改,Token可被攻击者任意修改,导致安全措施失效。
一般情况下,我们可以这么做取防范CSFR攻击:
https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/
https://www.jianshu.com/p/66f77b8f1759
https://tech.meituan.com/2018/10/11/fe-security-csrf.html