《白帽子讲web安全》学习笔记之第12章web框架安全

author author     2022-08-08     680

关键词:

第12章 WEB框架安全

12.1 MVC框架安全

Spring框架中可以使用spring security来增加系统的安全性。

12.2 模板引擎与XSS防御

 

12.3 WEB框架与CSRF防御

MVC中防御CSRF

q  Session中绑定token。如果不能保存到数据库中的Session,则使用Cookie.

q  form表单中自动填写token字段

q  Ajax请求中封装token

q  在服务器端对比POST提交的tokenSession绑定的Tiken是否一致。

q  尽量使用POST

12.4 Http Headers管理

MVC框架中对响应的HTTP头做好防御和返回

因此对抗CRLF的方案只需要在"value"中编码所有的 即可。这里没有提到在"key"中编码 ,是因为让用户能够控制"key"是极其危险的事情,在任何情况下都不应该使其发生。

对于框架来说,管理好跳转目的地址是很有必要的。一般来说,可以在两个地方做这件事情:

q  如果Web框架提供统一的跳转函数,则可以在跳转函数内部实现一个白名单,指定跳转地址只能在白名单中;

q  另一种解决方式是控制HTTPLocation字段,限制Location的值只能是哪些地址,也能起到同样的效果,其本质还是白名单。

 

有很多与安全相关的Headers,也可以统一在Web框架中配置。比如用来对抗ClickJackingX-Frame-Options,需要在页面的HTTP Response中添加:

X-Frame-Options: SAMEORIGIN

Web框架可以封装此功能,并提供页面配置。该HTTP头有三个可选的值:SAMEORIGINDENYALLOW-FROM origin,适用于各种不同的场景。

并不是所有的Web服务器、Web容器、脚本语言提供的API都支持设置HttpOnly Cookie,所以很多时候需要由框架实现一个功能:对所有的Cookie默认添加HttpOnly,不需要此功能的Cookie则单独在配置文件中列出。

这将是非常有用的一项安全措施,在框架中实现的好处就是不用担心会有遗漏。就HttpOnly Cookie来说,它要求在所有服务器端设置该Cookie的地方都必须加上,这可能意味着很多不同的业务和页面,只要一个地方有遗漏,就会成为短板。当网站的业务复杂时,登录入口可能就有数十个,兼顾所有Set-Cookie页面会非常麻烦,因此在框架中解决将成为最好的方案。

一般来说,框架会提供一个统一的设置Cookie函数,HttpOnly的功能可以在此函数中实现;如果没有这样的函数,则需要统一在HTTP返回头中配置实现。

12.5 数据持久层与SQL注入

对于ibaits参数引用可以使用#$两种写法,其中#写法会采用预编译方式,将转义交给了数据库,不会出现注入问题;如果采用$写法,则相当于拼接字符串,会出现注入问题。

例如,如果属性值为“‘ or‘1‘=‘1 ”,采用#写法没有问题,采用$写法就会有问题。

q  对于like语句,难免要使用$写法:

q  对于Oracle可以通过‘%‘||‘#param#‘||‘%‘避免;

q  对于MySQL可以通过CONCAT(‘%‘,#param#,‘%‘)避免;

q  MSSQL中通过‘%‘+#param#+‘%

mysql: select * from t_user where name like concat(‘%‘,#name #,‘%‘)

oracle: select * from t_user where name like ‘%‘||#name #||‘%‘

SQL Server:select * from t_user where name like ‘%‘+#name #+‘%

注:尽量避免使用如下代码:

<![CDATA[
  INSERTINTO `tab_user_one`
values( )                                                                                         
   ]]>

12.6 还能想到什么

在设计Web框架安全解决方案时,还需要保存好安全检查的日志。在设计安全逻辑时也需要考虑到日志的记录,比如发生XSS攻击时,可以记录下攻击者的IP、时间、UserAgent、目标URL、用户名等信息。这些日志,对于后期建立攻击事件分析、入侵分析都是有积极意义的。当然,开启日志也会造成一定的性能损失,因此在设计时,需要考虑日志记录行为的频繁程度,并尽可能避免误报。

在设计Web框架安全时,还需要与时俱进。当新的威胁出现时,应当及时完成对应的防御方案,如此一个Web框架才具有生命力。而一些0day漏洞,也有可能通过"虚拟补丁"的方式在框架层面解决,因为Web框架就像是一层外衣,为Web应用提供了足够的保护和控制力。

 

12.7 Web框架自身安全

Web框架本身也可能会出现漏洞,只要是程序,就可能出现bug。但是开发框架由于其本身的特殊性,一般网站出于稳定的考虑不会对这个基础设施频繁升级,因此开发框架的漏洞可能不会得到及时的修补,但由此引发的后果却会很严重。


本文出自 “梦朝思夕” 博客,请务必保留此出处http://qiangmzsx.blog.51cto.com/2052549/1859560

《白帽子讲web安全》学习笔记之第15章webserver配置安全

第15章webserver配置安全15.1apache安全在linux部署安装webServer时候一定主要要使用“最小权限原则”。尽量不要使用root部署。15.2nginx安全Nginx安全配置指南技术手册PDF下载免费下载地址在http://linux.linuxidc.com/用户名与密码都是www.linuxid... 查看详情

《白帽子讲web安全》学习笔记之第10章访问控制

第10章访问控制10.1whatcanido?权限控制是值某个主体(身份)对某一个客体需要实施某种操作,而系统对这种操作的限制就是权限控制。在一个安全系统中,确定主题的身份是“认证”解决的问题;而客体是胭脂红资源,是主题发... 查看详情

《白帽子讲web安全》学习笔记之第8章文件上传漏洞

第8章文件上传漏洞8.1文件上传漏洞概述文件上传漏洞是指用户上传一个可执行的脚本文件,并通过此脚本文件活动执行服务器端的能力。原理:由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致... 查看详情

《白帽子讲web安全》学习笔记之第2章浏览器安全

第2章浏览器安全2.1同源策略同源策略是浏览器的安全基础。同源策略的作用是让"document"相互独立。影响“源”的因素:host(域名或IP,如果是IP地址则看做一个根域名),子域名,端口,协议。注意:对于当前页面来说,页面内存... 查看详情

《白帽子讲web安全》学习笔记之第7章注入攻击

第7章注入攻击SQL注入的两个条件:1,用户可以控制输入;2,原本执行的SQL语句并接了用户输入的数据。7.1sql注入SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意... 查看详情

《白帽子讲web安全》学习笔记之第17章安全开发流程(sdl)

第17章安全开发流程(SDL)17.1SDL简介安全开发是从根源有效地解决安全漏洞问题,而已在软件的生命周期内,这样的开发模式成本更低。SDL过程:q 培训所有的开发人员必须接收适当的安全培训,了解相关的安全知识。q ... 查看详情

《白帽子讲web安全》学习笔记之第16章互联网业务安全

第16章互联网业务安全16.1产品需要什么样的安全安全是一个独立的,应该与业务持平。16.1.1互联网产品对安全的需求安全性是产品特性的一个组成部分,具备了安全性,产品才是完整的;安全做好了,产品才是最终正真的成熟。... 查看详情

《白帽子讲web安全》学习笔记之第9章认证与会话管理

第9章认证与会话管理9.1whoami?认证包含了身份和身份认证两层含义。q 身份—我是谁?q 身份认证—这就是我。认证的目的就是为了认出用户是谁?而授权的目的是为了决定用户能够做什么。认证实际上就是一个验证凭证... 查看详情

《白帽子讲web安全》学习笔记之第5章点击劫持(clickjacking)

第5章点击劫持(clickjacking)5.1什么是点击劫持点击劫持是一种视觉上的欺骗手段。是一种在网页中将恶意代码等隐藏在看似无害的内容(如按钮)之下,并诱使用户点击的手段。主要特征q 点击劫持是一种恶意攻击技术,用... 查看详情

《白帽子讲web安全》学习笔记之第11章加密算法与随机数

第11章加密算法与随机数11.1概述攻击密码系统的方法密码分析者攻击密码系统的方法主要有以下三种:(1)穷举攻击   所谓穷举攻击是指密码分析者采用依次试遍所有可能的密钥对所获密文进行解密,直至得到正确... 查看详情

《白帽子讲web安全》学习笔记之第13章应用层拒绝服务攻击

第13章应用层拒绝服务攻击13.1ddos简介DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。这种攻击方式可分为以下几种:q 通过使网络过载来干扰甚至阻断正常的网络通讯;q 通过向服务器提交大量... 查看详情

《白帽子讲web安全》学习笔记之第1章我的安全世界观

第1章我的安全世界观1.1web安全简史1.1.1中国黑客简史现在中国乃至全世界的黑客或者说是骇客已经进入了“黑暗时代”,因为互联网存在这大量的利益。1.1.2黑客技术的发展历程1.1.3web安全的兴起web安全是信息安全领域的一个重... 查看详情

《白帽子讲web安全》学习笔记之第3章跨站脚本攻击(xss)

第3章跨站脚本攻击(xss)3.1xss简介恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS攻击:跨站脚本攻击(CrossSiteScripting),为不和层叠样式表(... 查看详情

《白帽子讲web安全》学习笔记之第4章跨站点请求伪造(csrf)

第4章跨站点请求伪造(CSRF)4.1CSRF简介CSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。CSRF是一种依赖web浏览器的、被混淆过的代理人攻击(deput... 查看详情

想成为白帽子需要学些啥?最近在看《白帽子讲web安全》,可是发现自己看不懂,学校有在学web编程

想成为白帽子需要学些什么?最近在看《白帽子讲web安全》,可是发现自己看不懂,学校有在学web编程基础(html5.css.js),除了这个我还需要学些什么的。1、学习基本的网络编程语言,比如html2、学习脚本编程语言,比如python,... 查看详情

网易云课堂微专业—web安全工程师网易“白帽子黑客”训练营笔记(代码片段)

**前言&Tips:**:本课程适用于白帽子快速入门,即掌握最少且必要的知识。《网易云课堂微专业—Web安全工程师》,又名:《网易“白帽子黑客”训练营》の课程笔记前言&Tips:Web基础知识第一章第一节第二节第二... 查看详情

白帽子讲web安全第六章html5安全

1、新标签的XSS   H5中定义类很多新标签、新事件可能带来XSS(为研究XSS攻击H5的变化成立项目----HTML5SecurityCheatsheet)   eg:    1) <videosrc="" onloadedmetadate="alter(XSS)"&g 查看详情

好书推荐写web必须知道的安全知识|《白帽子讲web安全》

...小雨青年,一名程序员。今天为你推荐的书籍是《白帽子讲Web安全》。作为写后台的你,是否困惑用户输入应该提防哪些方面?作为写前端的你,是否已经注意页面能不能执行用户输入的脚本?作为产品经理的你&#x... 查看详情