Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

web 安全知识 #15

Open
msforest opened this issue Jul 1, 2017 · 0 comments
Open

web 安全知识 #15

msforest opened this issue Jul 1, 2017 · 0 comments
Labels

Comments

@msforest
Copy link
Owner

msforest commented Jul 1, 2017

  1. cookie
  2. xss
  3. csrf
  4. http/2.0
  5. cors
  6. dos

cookie

cookie是用于服务器对来自客户端请求的一种身份验证;cookie的使用为技术带来了好处,比如会话状态管理、个性化设置、浏览器行为跟踪等,但也引发了一些安全的问题,比如xss攻击。

cookie是由服务器生成并发送给客户端保存,之后的每次浏览器请求都会带上cookie信息,这会造成一定的带宽浪费,而且这些cookie信息都是很容易被获取,所以相应的安全预防是有必要的。

httponly

对于js不需要读取cookie信息的应用,可以将cookie设置成httponly类型,可以在一定程度上阻止跨域脚本攻击(xss)。HttpOnly标志并没有给你提供额外的加密或者安全性上的能力,当整个机器暴露在不安全的环境时,切记绝不能通过HTTP Cookie存储、传输机密或者敏感信息。
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
cookie

跨站脚本攻击(cross site scripting)

xss攻击是由于用户输入不合法的数据导致浏览器解析文档造成的攻击。比如当你打开一封Email或附件、浏览论坛帖子时,可能恶意脚本会自动执行,因此,在做这些操作时一定要特别谨慎。
预防xss攻击措施:

  • 对动态载入输出的不可靠的内容进行转义(html/js/attribute/css/url)
  • 把html转换成json形式,读的时候通过json.parse读取
  • 使用内容安全策略(csp)
    xss预防

跨站请求伪造(cross-site request forgery)

csrf是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。比如
<img src="http://bank.example.com/withdraw?account=bob&amount=1000000&for=mallory">
当你打开含有了这张图片的HTML页面是,如果你已经登录了你的银行帐号并且还有效(而且没有其它验证步骤),你的银行里的钱可能会被自动转走。
预防csrf攻击措施:

http/2.0

http2.0是自从1997年提出http1.1网络协议之后的一个大改版,最初是由spdy协议开发而来的,而spdy是由google开发的,google于2015年2月9日声明chrome浏览器不再使用spdy转而支持http2.0,并从chrome51之后开始使用http2.0协议;http2.0标准是在2015年5月份公开的,2015年底,所有现代浏览器都支持http2.0协议,比如Chrome, Opera, Firefox, Internet Explorer 11, Safari, Amazon Silk, and Edge browsers。截止2017年3月份,一千万个网站中就有13.7%的网站支持http2.
优势

  • 兼容http1.1
  • 支持现有的协议
  • 降低等待时间,提升页面价值速度
    1. 请求头部的数据压缩
    2. 修复http1.x行头部阻塞的缺陷
    3. 单个tcp连接运行发起多个请求

http/2.0 wiki
http2

CORS

出于安全原因,浏览器限制从脚本内发起的跨源http请求,意味着应用程序只能从加载应用程序的同一个域请求资源
跨域资源共享机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。浏览器支持在 API 容器中(例如 XMLHttpRequest 或 Fetch )使用 CORS,以降低跨域 HTTP 请求所带来的风险。

  • 请求头配置Access-Control-Allow-Origin信息以允许跨域请求

DOS

DOS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant