前后端漏洞分析与防御之上

一、前端 XSS
  1. XSS,全称为 Cross Site Scripting,跨站脚本攻击。
  2. XSS 攻击原理是 程序 + 数据 = 结果。
  3. Scripting 是可以获取页面数据、获取 Cookies、劫持前端逻辑、发送请求,所以就可以偷取网站任意数据、偷取用户资料、偷取用户密码和登录态、欺骗用户等等。
  4. XSS 攻击分类为反射型和存储型。反射型是 url 参数直接注入,存储型是存储到 DB 后读取时注入。
  5. XSS 攻击注入点是有 HTML 节点内容、HTML 属性、JavaScript 代码和富文本等。
  6. 浏览器自带防御,参数出现在 HTML 内容或属性。对于 JavaScript 代码,转义 '\' 或者转换成 json
  7. 富文本,按白名单保留部分标签和属性,也可以使用 js-xss 这个第三方库。
  8. CSP,全称为 Content Security Policy,内容安全策略,用于指定哪些内容可执行。
  9. PHP 中防御 XSS,可以使用内置函数转义、DOM 解析白名单、第三方库和 CSP 等等。
二、前端 CSRF
  1. CSRF,全称为 Cross Site Request Forgy,跨站请求伪造。
  2. CSRF 攻击原理,用户登录 A 网站,A 网站确认身份,B 网站页面带 A 网站身份向 A 网站发起请求。
  3. CSRF 攻击的危害是利用用户登录态、用户不知情、完成业务请求,所以盗取用户资金进行转账和消费、冒充用户发帖背锅、损害网站名誉等等。
  4. CSRF 攻击防御,B 网站向 A 网站请求,带 A 网站 Cookies,不访问 A 网站前端,访问后端,refererB 网站。对此,需要禁止第三方网站带 Cookies,以及需要设置 same-site 属性。
  5. 对于不访问 A 网站前端,可以在前端页面加入验证信息、验证码和 token 等等。
  6. 对于 refererB 网站,可以验证 referer 和 禁止来自第三方网站的请求。
  7. PHP 防御 CSRF,可以使用 Cookie samesite 属性、HTTP referer 头 和 token
三、前端 Cookies
  1. Cookies 的特性是前端数据存储,后端通过 http 头设置,请求时通过 http 头传给后端,前端可读写和遵守同源策略。同时,也是有域名、有效期、路径、http-onlysecure
  2. Cookies 的作用是存储个性化设置,存储未登录时用户唯一标识,存储已登录用户的凭证和存储其它业务数据。
  3. Cookies 的登录用户凭证是前端提交用户名和密码,后端验证用户名和密码,后端通过 http 头设置用户凭证。对此,登录用户凭证可以是用户ID、用户ID+签名 和 SessionId
  4. CookiesXSS 的关系,XSS 可能偷取 Cookieshttp-onlyCookie 不会被偷。
  5. CookiesCSRF 的关系,CSRF 利用了用户Cookies,攻击站点无法读取 Cookies,最好能阻止第三方使用 Cookies
  6. Cookies 安全案例,比如某学习教务系统使用了开源 CMS,该 CMS 使用 username 作为唯一用户标识,该 CMS 文章作者暴露了 username,可以使用任意 username 登录后台。还比如,某论坛使用了某开源 ASP BBS 程序,该 ASP 程序使用用户 ID 作为用户标识,可以伪造任意用户登录。
  7. Cookies 安全策略是签名防篡改、私有变化加密、http-only去防止 XSSsecuresame-site
四、点击劫持
  1. 点击劫持的危害是用户亲手操作、用户不知情,所以就盗取用户资金转账、获取用户敏感信息。
  2. 点击劫持防御,可以使用 JavaScript 禁止内嵌,X-FRAME-OPTIONS 禁止内嵌以及其他辅助手段等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值