Hibop / Hibop.github.io

Hibop 个人博客
https://hibop.github.io/
23 stars 1 forks source link

关于Web安全相关总结 #11

Open Hibop opened 6 years ago

Hibop commented 6 years ago

用HTTPS对HTTP通信实施加密

使用HTTPS机制能对服务器和客户端的通信加密,即使是经由的代理服务器和通信网络,也无法查阅其通信内容。

HTTPS能对URI路径、查询字符串、协议首部和消息体(请求消息体和响应消息体)等几乎所有的交互数据完成加密。

使用浏览器访问API时的问题

会话劫持 XSS

Cookie常用来标记用户或授权会话。因此,如果Web应用的Cookie被窃取,可能导致授权用户的会话受到攻击 在Content-type首部中返回application/json。

Content-type: application/json 然而IE浏览器会无视Content-Type首部的内容,因为使用 Content Sniffering 功能,即通过实际的数据来推测数据格式。

为了防止浏览器因 Content Sniffering 功能将JSON当作HTML解释,首先要在浏览器设置X-Content-Type-Options首部,该首部IE8+中有实现

X-Content-Type-Options: nosniff 另一种防XSS威胁的对策,是让JSON字符串进行转义

XSRF

XSRF是跨站点请求伪造(Cross Site Request Forgery)的缩写。就是通过跨站点发送伪造的请求,让服务器端执行用户意愿之外的处理。换言之,当用户访问怀有恶意的页面时,XSRF攻击会经由页面嵌入的链接Iframe元素、IMG元素、Javascript代码及表单等,向另一个截然不同的站点发送请求,执行用户意愿之外的操作。

如:向公告板任意发帖,攻击站点

首先要禁止通过GET方法来修改服务器端的数据,而要使用POST、PUT、DELETE等方法。

即使设置了不允许通过GET方法来修改服务器端数据,XSRF可以通过FORM元素使用POST方法来发起攻击。和 XMLHttpRequest 不同,FORM元素不受同源策略的影响。

防止XSRF攻击的最常用的方法是使用XSRF令牌,在发送源的正规表单里嵌入一个由被访问站点发现的一次性令牌,或者至少每个会话中嵌入一个独特的令牌,只要来自客户端的访问没有携带令牌,就一律拒绝。

另一种防范措施,如果Web API只存在由XMLHttpRequest或非浏览器客户端发起的访问,就要求客户端使用某种机制在请求中附加一个特殊的首部,如果请求消息中不存在这一特殊首部,就拒绝访问,比如检查广为人知的X-Requested-With首部,由于通过FORM元素使用POST方法发起的请求,无法在发起请求时添加私有的首部,因此可以防范通过表单发起的XSRF攻击,

JSON劫持

指API返回的JSON数据被怀有恶意的第三方窃取

防止JSON劫持可以采取的以下方式

让JSON数据无法通过script元素读取 让浏览器准确识别JSON数据 让JSON数据不能按JavaScript解释,或者在执行时无法读取到数据

Http security

较深入的总结: 常见 Web 安全攻防总结

Hibop commented 6 years ago

jsfuck

http://www.jsfuck.com/

Hibop commented 6 years ago

xxs

https://alf.nu/alert1

Hibop commented 5 years ago

总结 XSS 与 CSRF 两种跨站攻击

Hibop commented 5 years ago

作为一个前端,可以如何机智地弄坏一台电脑?

思路总结: