白帽子讲Web安全(第 12 章 Web框架安全)

第 12 章 Web框架安全

12.1 MVC 框架安全

12.2 模板引擎与 XSS 防御

在 View 层,可以解决 XSS 问题。XSS 攻击是在用户的浏览器上执行的,其形成过程则是在服务器端页面渲染时,注入了恶意的 HTML 代码导致的。从 MVC 架构来说,是发生在 View 层,因此使用“输出编码”的防御方法更加合理,这意味着需要针对不同上下文的 XSS 攻击场景,使用不同的编码方式。

“输出编码”的防御方法:

  • 在 HTML 标签中输出变量;
  • 在 HTML 属性中输出变量;
  • 在 script 标签中输出变量;
  • 在事件中输出变量;
  • 在 CSS 中输出变量;
  • 在 URL 中输出变量。

针对不同的情况,使用不同的编码函数。

12.3 Web 框架与 CSRF 防御

CSRF 攻击的目标,一般都会产生“写数据”操作的 URL ,比如“增”、“删”、“改”;而“读数据”操作并不是 CSRF 攻击的目标,因为在 CSRF 的攻击过程中攻击者无法获取到服务器端返回的数据,攻击者只是借用户之手触发服务器动作,所以读数据对于 CSRF 来说并无直接的意义。

在很多时候都要求使用 HTTP POST 进行防御,但实际上 POST 本身并不足以对抗 CSRF ,因为 POST 也是可以自动提交的。但是 POST 的使用,对于保护 token 有着积极的意义,而 security token 的私密性(不可预测性原则),是防御 CSRF 攻击的基础。

12.4 HTTP Headers 管理

12.5 数据持久层与 SQL 注入

使用 ORM ( Object/Relation Mapping )框架对 SQL 注入是有积极意义的。我们知道对抗 SQL 注入的最佳方式就是使用“预编译绑定变量”。在实际解决 SQL 注入时,还有一个难点就是应用复杂后,代码数量庞大,难以把可能存在 SQL 注入的地方不遗漏的找出来,而 ORM 框架为我们发现问题提供了一个便捷的途径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值