一、XSS
摘自
跨站脚本(cross site script)简称为XSS。
XSS是指攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
攻击者可以利用XSS漏洞、借助存在漏洞的Web网站攻击其他浏览相关网页的用户,窃取用户浏览会话中诸如用户名和口令(可能包含在cookie里)的敏感信息、通过插入恶意代码对用户执行挂马攻击。XSS漏洞还可能被攻击者用于网页篡改,只是多数情况为了经济利益最大化,攻击者不会直接进行篡改。
XSS包括三类:1非持久型攻击(反射型),脚本注入后直接作用。2,持久型(存储型),保存到数据库。3 基于DOM的XSS有时也称为type0XSS。 当用户能够通过交互修改浏览器页面中的DOM(DocumentObjectModel)并显示在浏览器上时,就有可能产生这种漏洞,前提是易受攻击的网站有一个HTML页面采用不安全的方式从document.location 或document.URL 或 document.referrer获取数据。
防御:1、将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了.2、表单数据规定值的类型,例如:年龄应为只能为int、name只能为字母数字组合。。。。4、对数据进行Html Encode 处理5、过滤或移除特殊的Html标签, 例如: <script>, <iframe> , < for <, > for >, " for 6、过滤JavaScript 事件的标签。例如 "οnclick=", "onfocus" 等等。
二、CSRF
跨站请求伪造,也被称为:one click attack/session riding,缩写为CSRF/XSRF
CSRF能够做的事情包括:攻击者盗用了你的身份,以你的名义发送恶意请求。以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
攻击过程: 用户A访问网站B并登录网站B。2,用户A未登出网站B并访问危险网站C,网站C向A发出一个请求访问网站B。3 网站B以A的名义处理网站C的请求。
防御 CSRF 攻击主要有三种策略:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。