1、初步认识web安全:`
- 安全与安全圈 - web应用与web安全的发展 - web安全隐患与本质
web安全:web应用安全。 web安全 + 二进制安全
“SQL注入“和”XSS“的出现分别是web安全史上的两个里程碑。web1.0,更多关注的是服务器端脚本的安全问题,如sql注入。web2.0samy蠕虫的爆发,web安全主战场由服务器端转换到浏览器。
web安全的本质是信任问题。由于信任,正常处理用户恶意的输入导致问题的产生,所谓的恶意输入都是一些非预期的输入,如果把99%的问题都处理了,那剩下的1%就是造成安全问题的那块短板。
2、web应用的组成与页面的渲染:
浏览器的解析顺序和解码顺序:html>>css>>js
dom树:文档对象模型。
3、浏览器特性与安全策略:
同源策略:不同域的客户端脚本在没有明确授权的情况下,不能读写对方的资源。
同域和不同域:http和https协议不同,域名不同,端口号不同默认为80。(www.test.com与fooying.test.com,www与fooying为不同的子域; 与text.com域名也不同,顶级域与www为不同子域) “只要符号协议、域名、端口号相同”可以添加目录等,依然是同域
授权:通过http响应头返回的字段进行设置的 Access-Control-Allow-Origin:http://www.test.com
资源:cookie( document.cookie ),文档内容
沙盒框架 (sandboxed frame):是对常规表现行为的扩展,他能让顶级页面对其嵌入的子页面及这些子页面的子资源设置一些额外的限制。通过<iframe>的参数sandbox=""实现限制,常用的一些参数来配置想要的效果
flash安全沙箱 :本地沙箱与远程沙箱,在根目录下增加crossdomain.xml文件配置可以提供允许的域跨域访问本域上内容的权限。
cookie的安全策略 :domain用于指定cookie的有效域,path用于指定Cookie的有效URL路径、Secure如果设置该属性,仅在https请求下提交cookie、HttpOnly如果设置该属性,客户端js无法获取cookie值。
内容安全策略 :(content security policy) 通过编码在HTTP响应头中的指令来实施策略。
4、HTTP协议与会话管理
当我们访问一个网址时,中间发生了什么?
输入网址--浏览器查找域名的IP地址--浏览器给WEB服务器发送了一个http请求--服务器处理请求--服务器发回一个http响应--浏览器渲染显示HTML。
URL统一资源定位器:协议名称+层级URL的标记符号+访问资源需要的凭证信息(用户名密码等) + 从哪个服务器获取数据+端口号+指向资源的层级文件路径+查询字符串+片段ID
cookie:name名称、value值、domain用于指定cookie的有效域、path:用于指定cookie的有效url路径、expires用于设定cookie的有效时间、secure如果设置该属性,仅在https请求中提交cookie、httpOnly如果设置,客户端js无法获取cookie值。
session:key+value
session和cookie区别:1、cookie的数据保存在客户端浏览器,session保存在服务器。2、服务端保存状态机制需要在客户端做标记,所以session可能借助cookie机制。3、cookie通常用于客户端保存用户的登陆状态。
XSS:跨站脚本攻击(cross site scripting)
1、是一种注入式攻击方式。
原因:对非预期输入的信任,对于用户输入没有严格控制而直接输出到页面。
危害:盗取各类用户账号,如机器登陆账号、用户网银账号、各类管理员账号、窃取数据、非法转账、挂马等
实例:
Payload(有效荷载) 爆炸效果
poC:用来验证一个漏洞是否存在。 空弹
Exp:利用程序 实弹
2、常规的xss分类: 存储型(持久型,有存储过程) 反射型(非持久型) DOM型
其他XSS类别:- mxss(突变型) - uxss(通用型) -flash xss -utf-7 xss -mhtml xss -css xss -VBScript xss
3、xss盲打平台和xss蠕虫:
xss盲打是指攻击者对数据提交后展现的后台位置情况下的一种XSS攻击方式。
xss盲打平台就是为这种方式提供基本平台功能。
xss蠕虫:Samy蠕虫 原理:- 利用XSS实现某些操作,比如微博关注用户 -实现某些操作的同事,触发蠕虫代码复制和传播 -
跨站伪造请求csrf
1、csrf :cross-site request forgery 全称跨站伪造请求,也称为 one click attack/session riding,还可以缩写为XSRF,通俗讲就是利用被害者的身份去发送请求。
浏览器的Cookie保存机制 :-
- Session Cookie,浏览器不关闭则不失效
- 本地Cookie,过期时间内不管浏览器关闭与否均不失效
CSRF与XSS的区别:
- xss:利用对用户输入的不严谨然后执行js语句
- CSRF:通过伪造受信任用户发送请求。CSRF可以通过xss实现
2、CSRF的集中攻击方式:- HTML CSRF --JSON HiJacking --Flash CSRF
HTML CSRF:通过元素标签发请求