xss: 跨站脚本攻击(Cross Site Scripting)是最多见和基本的攻击 WEB 网站方法,攻击者经过注入非法的 html 标签或者 javascript 代码,从而当用户浏览该网页时,控制用户浏览器。javascript
DOM即文本对象模型,使用DOM能够容许程序和脚本动态的访问和更新文档的内容、结构和样式。这种方式不须要服务器解析响应的直接参与,触发XSS靠的是浏览器端的DOM解析,能够认为彻底是客户端的事情。
反射型 xss :css
也被称为非持久性XSS,是如今最容易出现的一种XSS漏洞。发出请求时,XSS代码出如今URL中,最后输入提交到服务器,服务器解析后在响应内容中出现这段XSS代码,最后浏览器解析执行。html
存储型XSS又被称为持久性XSS,它是最危险的一种跨站脚本,相比反射型XSS和DOM型XSS具备更高的隐蔽性,因此危害更大,它不须要用户手动触发。 当攻击者提交一段XSS代码后,被服务器端接收并存储,当全部浏览者访问某个页面时都会被XSS,其中最典型的例子就是留言板。前端
利用虚假输入表单骗取用户我的信息。
利用脚本窃取用户的 Cookie 值,被害者在不知情的状况下,帮助攻击者发送恶意请求。java
httpOnly: 在 cookie 中设置 HttpOnly 属性,使js脚本没法读取到 cookie 信息。
前端负责输入检查,后端也要作相同的过滤检查。
某些状况下,不能对用户数据进行严格过滤时,须要对标签进行转换后端
跨站点请求伪造(Cross-Site Request Forgeries),冒充用户发起请求(在用户不知情的状况下), 完成一些违背用户意愿的事情(如修改用户信息,删初评论等)。浏览器
使用token的原理:
第一步:后端随机产生一个 token,把这个token 保存到 session 状态中;同时后端把这个token 交给前端页面;
第二步:前端页面提交请求时,把 token 加入到请求数据或者头信息中,一块儿传给后端;
后端验证前端传来的 token 与 session 是否一致,一致则合法,不然是非法请求。缓存
点击劫持,是指利用透明的按钮或链接作成陷阱,覆盖在 Web 页面之上。而后诱使用户在不知情的状况下,点击那个链接访问内容的一种攻击手段。这种行为又称为界面假装(UI Redressing) 。安全
点击劫持通常有以下两种方式实现:性能优化
X-FRAME-OPTIONS HTTP 响应头是用来给浏览器指示容许一个页面能否在<frame>, <iframe> 或者 <object> 中展示的标记。
网站可使用此功能,来确保本身网站内容没有被嵌到别人的网站中去,也从而避免点击劫持的攻击
X-FRAME-OPTIONS 有三个值:
判断顶层视口的域名是否是和本页面的域名一致,若是不一致就让恶意网页自动跳转到我方的网页。
if (top.location.hostname !== self.location.hostname) { alert("您正在访问不安全的页面,即将跳转到安全页面!") top.location.href = self.location.href; }
此种方法可轻易被破解:
// 破解: // 顶层窗口中放入代码 var location = document.location; //或者 var location = ""; if (top.location.hostname !== self.location.hostname) { alert("您正在访问不安全的页面,即将跳转到安全页面!") top.location.href = self.location.href; }
减小http请求次数:
合理的title、description、keywords:搜索对这三项的权重逐个减少;
标题与关键词
网站结构目录
页面元素
网站内容
友情连接
内链的布置
流量分析