首页 开发编程 正文

php怎么实现跨域

从而进行跳转或者一些其它的操作2、为什么感觉周围很多自学web前端的人后来都放弃了?他们认为Web前端是最简单的,要想能够胜任web前端的开发,对Web前端没有正确的认识这可能是很多自学前端的朋友们最容易犯的错误。学习前没有深入了解,自己也觉得前端很容易学习。错误的认为前端就是编写html页面,他们往往在对前端没有科学认识的前提下,他...

php怎么实现跨域,php如何跨域提取cookie?

在a.com下设置cookie后,嵌入一个iframe框链接b.com的页面,b.com设置好页面cookie后,再嵌入一个a.com的页面,然后通过parent.parent就可以调用最外层的a.com的js方法,从而进行跳转或者一些其它的操作

为什么感觉周围很多自学web前端的人后来都放弃了?

随着互联网行业的飞速发展,每年都有越来越多的人加入程序员的大军。其中,有很多跨专业的,完全没有基础的人慕名而来。他们认为通过自学,充分利用网络资源,完全可以找到一份不错的工作。

Web前端就是新人首选的方向,他们认为Web前端是最简单的,很容易入门,只要掌握HTML,CSS,JS就可以胜任了。事实并不是这样的,这些只是Web前端的入门知识,要想能够胜任web前端的开发,还有很多东西等着你学习呢。

为什么有这么多自学Web前端的人,后来都放弃了呢?我们总结一下,大概有一下几个原因:

第一:对Web前端没有正确的认识

这可能是很多自学前端的朋友们最容易犯的错误。他们听说前端技术含量低,能够快速入门,就业机会还多。学习前没有深入了解,只是听别人说简单,自己也觉得前端很容易学习。错误的认为前端就是编写html页面,写CSS,没有技术含量。他们往往在对前端没有科学认识的前提下,盲目开始自学。

他们自学的途径也很简单,就是在网上找一些资料,看一些教学视频,看到什么教程就学习什么。他们甚至只看视频,从来都不自己动手去写一些代码。他们只是进行碎片化的学习,今天学习HTML,明天学习CSS。这样没有规划的学习,效率是非常低的。往往会造成这样的结果,该学的没有学会,这样肯定无法满足企业的招聘要求,慢慢放弃也是很正常的。

第二:只靠自己摸索,不知道原理

好多初学前端的人,在自学的时候,基本都是靠自己摸索,没有老师或者技术大牛的指点。好多知识只是会用,并不明白其中的原理。自己认为是懂了,其实只是了解了皮毛。如果遇到稍微难一点的问题,自己就无法解决了。

通过视频学习也是一样的,老师讲了那个知识点,自己知道了这个知识点,就认为自己已经熟练掌握了。学完前端的基础知识,就认为自己该学的都学会了,就开始出去找工作。面试的时候,面试官很少问非常基础的问题,一般都会问一些原理性的内容。这样的同学,肯定是一问三不知,肯定是找不到工作的,于是就放弃了学习。

第三:没有及时解决问题

相当一部分在自学的过程中,遇到自己难以搞定的问题时,通过查找资料也无法解决。他们不会放下面子请教前辈,而是放到一边。他们自我安慰说:“这个知识点不重要,不明白也不会有什么问题。”随着时间的积累,放弃的知识点越来越多,不会的问题也越来越多。最后,面对这么多不会的问题,自己也就没有继续学习下去的动力了,只能放弃学习前端。

第四:缺乏动手能力

有些同学在学习的时候,只是看书,看视频,从来不会动手也一个网页。当他们学习完了,就认为自己学会了。但是,当真正坐下来写代码的时候,不知这有问题就是那有问题,查了好长时间也找不到问题所在。只有当他真正写代码的时候,才感觉到前端并没有想象的那样简单,慢慢的就开始打退堂鼓了。这样的同学,即便是通过系统的学习,做项目的时候和职场小白没有任何区别。他们甚至不会做项目,一个很简单的问题,他们能处理一天甚至更长时间。长期这样,自己也就没有当初的激情,自然就放弃了。

总之,想要通过自学找到一份薪资待遇比较高的工作,一定要对前端有个正确的认识,规划自己的学习路线,自学的过程中多想前辈请教。学习过程中遇到问题时,要及时解决问题。学习过程中,要养成动手写代码的习惯,多做项目。学习过程中,我们只要养成良好的学习习惯,坚持自学到底,一定可以找到合适的工作!

什么是代码审计?

加密钱包安全审计你的钱包是否安全?

近年来,数字钱包安全事件频发。

2019年11月19日,Ars Technica报道称两个加密货币钱包数据遭泄露,220万账户信息被盗。安全研究员Troy Hunt证实,被盗数据来自加密货币钱包GateHub和RuneScape机器人提供商EpicBot的账户。

这已经不是Gatehub第一次遭遇数据泄露了。据报道,去年6月,黑客入侵了大约100 个XRP Ledger钱包,导致近1000万美元的资金被盗。

2019年3月29日,Bithumb失窃事件闹得沸沸扬扬。据猜测,这次事件起因为Bithumb拥有的g4ydomrxhege帐户的私钥被黑客盗取。

随即,黑客将窃取的资金分散到各个交易所,包括火币,HitBTC,WB和EXmo。根据非官方数据和用户估计,Bithumb遭受的损失高达300万个EOS币(约1300万美元)和2000万个XRP币(约600万美元)以上。

由于数字货币的匿名性及去中心化,导致被盗资产在一定程度上难以追回。因此,钱包的安全性至关重要。

2020年8月9日,CertiK的安全工程师在DEF CON区块链安全大会上发表了演讲主题为:Exploit Insecure Crypto Wallet(加密钱包漏洞利用与分析)的主题报告,分享了对于加密钱包安全的见解。

加密钱包是一种帮助用户管理帐户和简化交易过程的应用程序。

有些区块链项目发布加密钱包应用程序来支持本链的发展——比如用于CertiK Chain的Deepwallet。

此外,还有像Shapeshift这样的公司,其构建了支持不同区块链协议的钱包。

从安全的角度来看,加密钱包最需重视的问题是防止攻击者窃取用户钱包的助记词和私钥等信息。

近一年来,CertiK技术团队对多个加密钱包进行了测试和研究,并在此分享针对基于软件不同类型的加密钱包进行安全评估的方法及流程。

加密钱包基础审计清单

要对一个应用程序进行评估,首先需要了解其工作原理→代码实现是否遵循最佳安全标准→如何对安全性不足的部分进行修正及提高。

CertiK技术团队针对加密钱包制作了一个基础审计清单,这份清单反映了所有形式的加密钱包应用(手机、web、扩展、桌面),尤其是手机和web钱包是如何生产和储存用户私钥的。

应用程序如何生成私钥?

应用程序如何以及在何处存储原始信息和私钥?

钱包连接到的是否是值得信任的区块链节点?

应用程序允许用户配置自定义区块链节点吗?如果允许,恶意区块链节点会对应用程序造成什么影响?

应用程序是否连接了中心化服务器?如果是,客户端应用会向服务器发送哪些信息?

应用程序是否要求用户设置一个安全性高的密码?

当用户试图访问敏感信息或转账时,应用程序是否要求二次验证?

应用程序是否使用了存在漏洞且可被攻击的第三方库?

有没有秘密(比如:API密钥,AWS凭证)在源代码存储库中泄漏?

有没有明显的不良代码实现(例如对密码学的错误理解)在程序源代码中出现?

应用服务器是否强制TLS连接?

手机钱包

相比于笔记本电脑,手机等移动设备更容易丢失或被盗。

在分析针对移动设备的威胁时,必须考虑攻击者可以直接访问用户设备的情况。

在评估过程中,如果攻击者获得访问用户设备的权限,或者用户设备感染恶意软件,我们需要设法识别导致账户和密码资产受损的潜在问题。

除了基础清单以外,以下是在评估手机钱包时要增加检查的审计类目:

应用程序是否警告用户不要对敏感数据进行截屏——在显示敏感数据时,安卓应用是否会阻止用户截屏?iOS应用是否警告用户不要对敏感数据进行截屏?

应用程序是否在后台截图中泄漏敏感信息?

应用程序是否检测设备是否越狱/root?

应用程序是否锁定后台服务器的证书?

应用程序是否在程序的log中记录了敏感信息?

应用程序是否包含配置错误的deeplink和intent,它们可被利用吗?

应用程序包是否混淆代码?

应用程序是否实现了反调试功能?

应用程序是否检查应用程序重新打包?

(iOS)储存在iOS Keychain中的数据是否具有足够安全的属性?

应用程序是否受到密钥链数据持久性的影响?

当用户输入敏感信息时,应用程序是否禁用自定义键盘?

应用程序是否安全使用“webview”来加载外部网站?

Web钱包

对于一个完全去中心化的钱包来说,Web应用程序逐渐成为不太受欢迎的选择。MyCrypto不允许用户在web应用程序中使用密钥库/助记词/私钥访问钱包,MyEtherWallet也同样建议用户不要这样做。

与在其他三种平台上运行的钱包相比,以web应用程序的形式对钱包进行钓鱼攻击相对来说更容易;如果攻击者入侵了web服务器,他可以通过向web页面注入恶意的JavaScript,轻松窃取用户的钱包信息。

然而,一个安全构建并经过彻底测试的web钱包依旧是用户管理其加密资产的不二之选。

除了上面常规的基础审计类目之外,我们在评估客户端web钱包时,还列出了以下需要审计的类目列表:

应用程序存在跨站点脚本XSS漏洞吗?

应用程序存在点击劫持漏洞吗?

应用程序有没有有效的Content Security Policy?

应用程序存在开放式重定向漏洞吗?

应用程序存在HTML注入漏洞吗?

现在网页钱包使用cookie的情况很少见,但如果有的话,应检查:

Cookie属性

跨站请求伪造(CSRF)

跨域资源共享(CORS)配置错误

该应用程序是否包含除基本钱包功能之外的其他功能? 这些功能存在可被利用的漏洞吗?

OWASP Top 10中未在上文提到的漏洞。

扩展钱包

Metamask是最有名和最常用的加密钱包之一,它以浏览器扩展的形式出现。

扩展钱包在内部的工作方式与web应用程序非常相似。

不同之处在于它包含被称为content script和background script的独特组件。

网站通过content script和background script传递事件或消息来与扩展页面进行交流。

在扩展钱包评估期间,最重要的事情之一就是测试一个恶意网站是否可以在未经用户同意的情况下读取或写入属于扩展钱包的数据。

除了基础清单以外,以下是在评估扩展钱包时要增加检查的审计类目:

扩展要求了哪些权限?

扩展应用如何决定哪个网站允许与扩展钱包进行交流?

扩展钱包如何与web页面交互?

恶意网站是否可以通过扩展中的漏洞来攻击扩展本身或浏览器中其他的页面?

恶意网站是否可以在未经用户同意的情况下读取或修改属于扩展的数据?

扩展钱包存在点击劫持漏洞吗?

扩展钱包(通常是background script)在处理消息之前是否已检查消息来源?

应用程序是否实现了有效的内容安全策略?

Electron桌面钱包

在编写了web应用程序的代码之后,为什么不用这些代码来建造一个Electron中桌面应用程序呢?

在以往测试过的桌面钱包中,大约80%的桌面钱包是基于Electron框架的。在测试基于Electron的桌面应用程序时,不仅要寻找web应用程序中可能存在的漏洞,还要检查Electron配置是否安全。

CertiK曾针对Electron的桌面应用程序漏洞进行了分析,你可以点击访问此文章了解详情。

以下是基于Electron的桌面钱包受评估时要增加检查的审计类目:

应用程序使用什么版本的Electron?

应用程序是否加载远程内容?

应用程序是否禁用“nodeIntegration”和“enableRemoteModule”?

应用程序是否启用了“contextisolation”, “sandbox” and “webSecurity”选项?

应用程序是否允许用户在同一窗口中从当前钱包页面跳转到任意的外部页面?

应用程序是否实现了有效的内容安全策略?

preload script是否包含可能被滥用的代码?

应用程序是否将用户输入直接传递到危险函数中(如“openExternal”)?

应用程序会使不安全的自定义协议吗?

服务器端漏洞检查列表

在我们测试过的加密钱包应用程序中,有一半以上是没有中心化服务器的,他们直接与区块链节点相连。

CertiK技术团队认为这是减少攻击面和保护用户隐私的方法。

但是,如果应用程序希望为客户提供除了帐户管理和令牌传输之外的更多功能,那么该应用程序可能需要一个带有数据库和服务器端代码的中心化服务器。

服务器端组件要测试的项目高度依赖于应用程序特性。

根据在研究以及与客户接触中发现的服务器端漏洞,我们编写了下文的漏洞检查表。当然,它并不包含所有可能产生的服务器端漏洞。

认证和授权

KYC及其有效性

竞赛条件

云端服务器配置错误

Web服务器配置错误

不安全的直接对象引用(IDOR)

服务端请求伪造(SSRF)

不安全的文件上传

任何类型的注入(SQL,命令,template)漏洞

任意文件读/写

业务逻辑错误

速率限制

拒绝服务

信息泄漏

总结

随着技术的发展,黑客们实施的欺诈和攻击手段也越来越多样化。

CertiK安全技术团队希望通过对加密钱包安全隐患的分享让用户更清楚的认识和了解数字货币钱包的安全性问题、提高警惕。

现阶段,许多开发团队对于安全的问题重视程度远远低于对于业务的重视程度,对自身的钱包产品并未做到足够的安全防护。通过分享加密钱包的安全审计类目,CertiK期望加密钱包项目方对于产品的安全标准拥有清晰的认知,从而促进产品安全升级,共同保护用户资产的安全性。

数字货币攻击是多技术维度的综合攻击,需要考虑到在数字货币管理流通过程中所有涉及到的应用安全,包括电脑硬件、区块链软件,钱包等区块链服务软件,智能合约等。

加密钱包需要重视对于潜在攻击方式的检测和监视,避免多次受到同一方式的攻击,并且加强数字货币账户安全保护方法,使用物理加密的离线冷存储(cold storage)来保存重要数字货币。除此之外,需要聘请专业的安全团队进行网络层面的测试,并通过远程模拟攻击来寻找漏洞。

为什么计算机专业的学生要学习使用Linux系统?

Linux其实无处不在

说到Linux就不得不谈windows和Unix

Unix和Linux:Linux是Unix的开源实现,Unix一开始的时候也是开源的,后来才以授权方式闭源.

Windows:Windows完全是为了普通用户(非计算机专业)使用方便而诞生。

Linux的好处:

用一个从业35年的技术大拿的原话是这样的“Those who don't understand Unix are condemned to reinvent it, poorly. ” 那些没用过Linux的人最后估计会去重新写一个。我敢打赌这句话任何一个用过Linux的人都会赞同。

虽然Linux离完美还很远,但这已经让他甩其他的竞争者几十条街了。

开源免费

Linux是开源免费的,这一点首先降低了你的学习成本。

Linux很有趣

Linux其实是个很有趣的操作系统,单从其各种命令就能看出:

Linux很性感

Linux很性感,为什么这么说呢,看看这个命令:

who | grep -i blonde | date; cd ~; unzip; touch; strip; finger; mount; gasp; yes; uptime; umount; sleep

(如果你知道我说的是什么意思一定笑了)

速度

按其创造者Linus Torvalds的话说,Linux可能是世界上最快的操作系统了。

多才多艺:

几乎世界上所有最快的超级计算机都使用了Linux。

安全:

Linux占有很大优势了,Linux仅仅依托文件系统,划分了简单明了的权限机制,而使用者绝大多数情况下处于一个非系统管理员(ROOT)的情况下,所有即使这时候运行的软件被入侵,也能很好的保护系统程序和其他用户文件的安全。 而Windows使用者大多数都在管理员模式下使用的,这时候一旦有程序被入侵,那入侵者基本上就能进入电脑的每一个角落。

解惑:

马克思有一个思想:"新生事物并不一定是在最近出现的。”初学Linux的人可能觉得Windows很好啊,鼠标一拖,左键一敲就搞定了,那你可能还停留在对计算机的表面认识中。

就拿Linux和各种小程序的完美配合来说,你一旦学会了 vi 和 VIM, 你会发现它的操作是那么的有规律性,似乎vi的设计者在几十年前就已经设计好了 VIM 在今天的完美而统一的操作方式!

Linux的真谛:Linux 从来没有摹仿 Windows,将来也不会。Linux 从诞生之日起,它的工作方式就比 Windows 的先进。Linux 属于能勇敢面对符号的人。只有符号才能完全操纵计算机。

看看那些高级的软件,他们为什么不设计界面,是他们的设计者技术差?当然不是!

图形界面配置方式的能力是极其有限的,而配置文件和程序语言的表达能力却是无限的。

总结一下:Linux对于普通人来说的确不如Windows方便,但对专业人员来说Linux可以在很多方面甩其他操作系统几条街!

关于如何学习Linux:

简单点讲:选一个稳定的Linux版本,学习再练习规范的命令,学习Linux文件系统及其运行原理,学习Linux下网络组建。之间还有许多的诸如软件安装、shell知识等。

加油吧,小伙子!

学HTML5要学些什么知识?

对于想从事IT工作的人们来说,HTML5前端开发是一个不错的切入点。学习的门槛低,而且与后端语言相比,前期没有那么多抽象的知识需要理解,HTML5的学习曲线是先快后慢的。

对于HTML5零基础的人员来说,可能看到一开始有许多的知识点,就会觉得基础知识很多、很难学,其实只要规划好了一条学习路线,学习的时候更有针对性,HTML5远没有看起来那么难,知识点也没有你想的那么复杂。

1、HTML5介绍

内容包括:(互联网发展趋势、HTML5语言的优势、简单易学人人都能编程、H5就业和薪资情况、HTML5常见的项目与产品、HTML5的未来与方向)

2、HTML基础

内容包括:(HTML简介与历史版本、常用开发软件、常见标签与属性、表格与表单、标签规范与标签语义化、实战:网页结构布局)

3、CSS基础

内容包括:(CSS简介与基本语法、常见的各种样式属性、CSS选择器与标签类型、理解盒子模型与CSS重置、浮动与定位、利用PS工具测量样式、HTML+CSS开发网页、实战:仿电商首页效果)

4、CSS3基础

内容包括:(CSS3常见样式、CSS3选择器、变形与动画、3D效果与关键帧、弹性盒模型)

5、移动端布局

(移动端基本概念、viewport窗口设置、移动端布局方案、rem、vh、vw等单位、响应式布局、bootstrap框架)

6、JavaScript基础

内容包括:(JS简介、JS变量、数据类型与类型转换、运算符与优先级、流程控制-if..else流程控制-switch...case、流程控制-while、do..while、for循环、break、continue语法、函数定义与调用、全局变量与局部变量。还有函数传参与返回值、函数作用域与变量作用域、DOM的基本操作、定时器使用、this指向与修改指向、数组、字符串等方法操作、时间对象与正则对象、掌握常见BOM操作、常见事件与事件细节、JSON与AJAX、JSONP跨域操作、前端cookie的使用、实战:JS配合HTML与CSS完成电商项目)

7、jquery框架

内容包括:(jquery框架介绍及优势介绍、jquery核心思想、jquery常见方法、jquery动画操作、jqueryAJAX操作、jquery工具方法、利用jquery快速开发网页)

8、PHP基础

内容包括:(PHP简介与基本语法、mysql数据库及sql语法、apache服务器与集成开发工具、PHP链接数据库、PHP与AJAX交互、实战:留言板、登录、注册等)

9、HTML5基础项目

内容包括:(项目简介、项目功能演示、项目划分及框架、编写HTML页面结构、设置CSS样式、添加JS交互、可选框架:bootstrap、jquery、PHP等、项目调试及兼容、项目验收)

虽然HTML5前端薪资高入门门槛低, 但是俗话说得好:入门容易,精通难。HTML5前端开发的知识点繁多,要想真正掌握HTML5前端工程师开发技能,并非易事,因此什么时候也不要忘记多学习,多思考,多练习。

本文转载自互联网,如有侵权,联系删除