前端网络安全

248 阅读3分钟

跨站脚本攻击(XSS攻击)

XSS(cross site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。

防范:

  1. 对于敏感的cookie信息,使用HttpOnly,使document对象中找不到cookie。
  2. 对于用户输入的信息要进行转义。

跨站请求伪造(CSRF攻击)

防范:

1、验证码。 应用程序和用户进行交互过程中,特别是账户交易这种核心步骤,强制用户输入验证码,才能完成最终请求。在通常情况下,验证码够很好地遏制
CSRF攻击。但增加验证码降低了用户的体验,网站不能给所有的操作都加上验证码。所以只能将验证码作为一种辅助手段,在关键业务点设置验证码。

2、Anti CSRF Token。 目前比较完善的解决方案是加入Anti-CSRF-Token,即发送请求时在HTTP 请
求中以参数的形式加入一个随机产生的token,并在服务器建立一个拦截器来验证这个token。服务器读取浏览器当前域cookie中这个token值,会进行校验该请求当中的token
和cookie当中的token值是否都存在且相等,才认为这是合法的请求。

防范 CSRF 攻击可以遵循以下几种规则:

  1. Get 请求不对数据进行修改
  2. 不让第三方网站访问到用户 Cookie
  3. 阻止第三方网站请求接口
  4. 请求时附带验证信息,比如验证码或者 Token

HTTP首部中的一些安全控制

Cookie的HttpOnly属性与secure属性

  • HttpOnly属性使JS脚本无法获得cookie。其主要目的为防止跨站脚本攻击(XSS)对cookie的信息窃取。
  • secure属性用于限制Web页面仅在https安全连接时才可以发送cookie

X-Frame-Options

首部字段 X-Frame-Options 属于HTTP响应首部,用于控制网站内容在其他Web网站的Frame标签内的显示问题。其主要目的是为了防止点击劫持(clickjacking)攻击。

首部字段 X-Frame-Options 有三个可设置值:

  • DENY :浏览器拒绝当前页加载任何frame页面
  • SAMEORIGIN:只允许加载同源域名下的页面
  • ALLOW-FROM:可定义允许frame加载的页面地址(被弃用)

X-XSS-Protections

首部字段 X-XSS-Protections 属于 HTTP 响应首部,它是针对跨站脚本攻击(XSS)的一种对策,用于控制浏览器XSS防护机制的开关。

首部字段 X-XSS-Protection 可指定的字段值如下:

  • 0:将XSS过滤设置成无效状态
  • 1:将XSS过滤设置成有效状态

TRACE请求方法

容易引发XST(Cross-Site Tracing,跨站追踪)攻击

参考文章

web前端安全机制问题全解析
前端常见的安全问题
前端常见的安全问题以及防范措施总结大全
前端安全防范知识XSS/CSRF/点击劫持/中间人攻击及防护方案