常见的WEB安全及防护

shayuchaor 2020-04-26

CIA知道么 ?

  • 机密性(Confidentiality)
  • 完整性(Integrity)
  • 可用性(Availiability)

常见的web攻击有 XSS ,CSRF;

xss 到底是什么 ?

  黑客在你的浏览器中插入一段恶意JS脚本,窃取你的隐私信息【这里泛指cookie登录信息】,冒充你的身份进行操作,这就是XSS攻击(Cross-Site-Scripting,跨站脚本攻击)。补充一下,为什么不叫CSS,是因为CSS是重叠样式,为了有所区别,即XSS。

XSS的类型有哪些 ?

  1. 发射型XSS(非持久型)
  2. 基于DOM的XSS
  3. 存储型XSS(持久性)
  • 反射型

  恶意JS脚本属于用户发送给网站请求中的一部分,随后网站又将这些部分返回给用户,恶意脚本在页面中被执行,一般发生在前后端一体的应用中,服务端逻辑会改变最终的网页代码。

  • 基于DOM型

  目前更流行前后端分离的项目,反射型XSS无用武之地,但这种攻击不需要经过服务器,网页本身的JS也是可以改变HTML,黑客正是利用这一点来实现的插入恶意脚本。

  • 存储型

  持久型XSS,黑客将恶意JS脚本长期保存在服务端数据库,用户一旦访问相关页面数据,恶意脚本就会被执行,常见于搜索,微博,社区贴吧评论等。

XSS攻击的结果是什么 ?

  1.  盗取用户cookie
  2. 未授权操作
  3. 修改DOM
  4. 刷浮窗广告
  5. 发动XSS蠕虫攻击
  6. 劫持用户行为,进一步渗透内网  

 如何防护XSS攻击:

  • 一切用户输入皆不可信,在输出时进行验证
  • 将HTML元素内容,属性以及URL请求参数,css值编码
  • 当编码影响业务时,使用白名单规则进行检测和过滤
  • 使用W3C提出的CSP(内容安全策略),定义域名白名单
  • 设置cookie的httpOnly属性

CSRF攻击是什么 ?

 英文全称是Cross-Site-Request-Forgery 即 跨站请求伪造,顾名思义 CSRF攻击就是黑客引诱用户打开黑客的网站,利用用户的登录状态发起跨站请求。

   降维解释: 攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求,利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户被攻击的网站执行某项操作的目的。

CSRF攻击的实现方式:

  • 最容易实现的是GET请求,一般进入黑客网站后,可以通过设置 img 的 src属性来自动发起请求。
  • 在黑客网站中,构造隐藏表单来自动发起POST请求。
  • 通过引诱链接诱惑用户点击触发请求,利用 a 标签 href。

如何防范CSRF攻击:

  • 针对实际情况,设置 Cookie 的 SameSite 属性为 Strict 或 Lax。
  • 服务端验证请求来源(Referer,Origin)。
  • 使用CSRF Token ,服务端随机生成返回给浏览器的Token。
  • 加入二次验证(独立的支付密码)。

CSRF 与 XSS 有什么区别:

   CSRF攻击不需要将恶意代码注入用户页面,仅仅是利用服务端的漏洞, 和用户的登录状态来实施攻击。

 CSRF攻击成本比XSS低,用户每天都要访问大量网页,无法确定每一个网页的合法性,从用户的角度来说,无法彻底防止CSRF攻击。

最后说两个加密算法:

  • 对称加密算法

  对称加密算法就是加密和解密使用同一个秘钥,简单粗暴。

  常见经典对称加密算法有 DES,AES,IDEA,国密 SM1,国密SM4。

  • 非对称加密算法

  非对称加密就是加密和解密使用不同的秘钥,发送方使用公钥对信息加密,接收方收到密文后,使用私钥解密,主要解决了密钥分发的难题。

  签名就是私钥加密

  经典非对称加密算法有 RSA,ECC和SM2。

相关推荐