客户端安全的基础是同源策略,什么是同源策略呢?就是限制了不一样源的“document”或脚本,对当前“document”读取或者设置属性。有一点须要注意对于当前页面来讲页面内存放JS的域并不重要,重要的是加载js页面所在的域是什么。例如在a.com下加载了<script src="b.com/b.js"></script>。可是b.js是运行在a.com页面中的,因此b.js的源就是a.com。而非b.com。在同源策略的限制下是不能跨域访问资源的,随着web发展跨域资源共享,愈来愈迫切。这就催生了各类安全问题,常见的攻击类型有:跨站脚本攻击,跨站点请求伪造,点击劫持等。css
跨站脚本攻击(xss):html
他指经过“html注入”,篡改了网页,加入了恶意脚本从而在用户浏览网页时控制了用户的浏览器的行为。例如将用户的输入显示到页面上,若是用户输入:<script>alert(1)</script>;用户就能够注入js。这种攻击是至关具备威胁性的,假如说我能够向当前你浏览的页面中注入个人脚本,那么我就能够读取你的cookie,经过cookie就能够不用登陆,进入你某个网站的帐号(cookie劫持攻击),这是很是危险的。更危险的是假如浏览器安装了第三方差价,js经过调用这些插件能够获得用户这是ip。xss最高级的攻击形式为蠕虫攻击:2007年,百度空间用户之间相互发垃圾短信,后来百度应急小组紧急修复了这一漏洞。黑客用攻击技巧有哪些呢,知己知彼才能百战不殆。web
最简单的是在输入框输入内容进行搜索,通常都会注意到可是嗨哟注意不到的例如:后端
切记用户是不可信任的,它能够输入任何内容。跨域
通常状况下都要将用户的输入通过编码,注意赞成域名下的网页编码格式要一致,不然能够应用编码就行攻击。浏览器
有的输入是有长度限制的,例如名字,号码长度,等。经过提早闭合标签能够绕过长度限制。安全
防护方法:不相信用户的输入,要对属于进行编码,进行长度检查,利用httpOnly属性防止cookie劫持,关键是输出检查,必定要严格控制好在html,js,css的输出。cookie
第二种常见的是跨站点请求伪造,和点击劫持。xss
假如说你在个人博客下面留言,这个留言能够是一个链接,连接的url是删除这篇博客的url,那么我点击这个连接就会将本身的博客删除。这是浏览器的cookie策略。网站
不可是用在浏览器伪造,用后端语言均可以伪造,跨站点请求伪造的本质是:重要操做的参数被攻击者猜到了,因此咱们使用token。让攻击者没法构造完整的请求。因此token的使用原则是:随机性,有生命周期,以及token的保密性。