《白帽子讲Web安全》

简介: 《白帽子讲Web安全》

一、安全问题的本质是信任问题。

互联网安全的核心是数据安全,数据从高等级的信任域流向低等级的信任域,是不需要安全检查的;数据从低等级的信任域流向高等级的信任域,则需要经过信任边界的安全检查。

二、安全三要素(CIA)

机密性:保护数据内容不泄露。加密是实现机密性要求的常见手段。

完整性:保护数据内容是完整、没有被篡改的。常见的保证一致性的技术手段是数字签名  

可用性:保护资源是“随需而得”。  

CIA的要求在登陆验证的需求下表现的淋漓尽致。使用SSL加密传输保证数据的机密性,使用数字签名保证数据未被篡改,使用其他手段保证不被Dos攻击。  

三、白帽子安全兵法

####1、最小权限原则    

系统只授予主体必要的权限,而不要过度授权。  

Ps: 最直接的体现每种类型的后台App一个独立的账号,数据库、Web app、Daemon app使用独立账号管理,只授予必要权限,限定目录读写等权限。  

2、纵深防御原则:

首先,要在各个不同的层面,不同的方面实施安全方案,避免出现疏漏,不同安全方案之间相互配合,构成一个整体。

其次,在正确的地方做正确的事,即:在解决根本问题的地方实施针对性的安全方案。

如无论Web app、Deamon app都需要互不信任、进行防御,构成纵深;然后针对自身的服务针对性的设计安全方案,如Web app主要针对Web安全,后台服务主要防止数据注入。  

3、数据与代码分离

例如:  

<html>
<head></head>
<body>
$var
</body>
</html>

对于这段代码:

<html>
<head></head>
<body>
</body>
</html>

就是程序的代码段,而

$var

就是用户数据。当$var的值是:

<script src="http://evil"></script>

此时就会出现安全问题。此时如何处理,根据代码分离的原则,重写程序片段并对$var进行安全处理  

<html>
<head></head>
<body>
<script>
$var
</script>
</body>
</html>

此时,script还原为代码片段,用户数据只有$var,就可以做安全处理了。

####4、不可预测性

不可预测性能后效的对抗基于篡改、伪造的攻击。例如,一个内容管理系统,如果文章的序号是按照数字升序排列,那么如果攻击者如果想批量删除这些文章,只需要简单的一个脚本:  

for (i=0; i<1000; i++) {
delete(url+"?id="+i);
}

四、跨站脚本攻击(XSS:cross site script)

本质:用户数据被当成了HTML代码的一部分执行,从而混淆了原本的语义,产生新的语义

XSS根据效果可以划分为一下几类:

1、反射型\存储型XSS

原理:从服务器应用直接输出到HTML页面中以进行攻击的XSS漏洞  

防御:

输入检查:根据数据的特征进行简单的XSS过滤  

输出检查:根据输出的场景进行XSS防御,根据场景的不同选择合适的encode函数。常见的场景包括:HTML标签、HTML属性、script标签、CSS、地址栏、Http Response头。  

2、DOM Based XSS

原理:通过Javascript修改HTML页面的DOM节点时形成的XSS漏洞  

防御:在数据输入到Javascript中应该执行一次javascriptEncode,然后同上。即,从Javascript输出到HTML页面也相当于一次XSS输出的过程,需要分场景使用不同的encode函数。  

五、跨站点请求伪造(CSRF:cross site request forgery)

本质:重要操作的所有参数都可以被攻击者猜测到的。攻击者只有预测出URL的所有参数和参数值,才能成功地构造一个伪造的参数;反之,攻击者将无法攻击成功  

防御:anti CSRF Token,保持原参数不变,新增一个参数token,该参数的值是随机的。通过添加此参数,促使攻击者无法预测所有参数值以预防CSRF。

不可预测性  

CSRF与XSRF不同,解决后者的唯一办法首先是解决XSS问题,然后才是CSRF问题。  

六、SQL注入

本质:代码拼凑了用户可以控制的输入数据。

防御:使用预编译语句或存储过程;检查数据变量;使用安全函数进行数据编码。

七、拒绝服务攻击(DDOS:Distributed Denial of Service)

本质:对涌现资源的无限制滥用造成服务不可用

防御:解决的核心思路是限制每个不可信任的资源使用者的配额。

1.根据攻击特征,使用数据清洗设备进行数据清洗

2.在应用中针对每个IP做请求频率限制。

3.应用代码做好性能优化

4.使用验证码

总结

总结以上Web安全的相关知识,如下图:

本文作者 : cyningsun

本文地址https://www.cyningsun.com/04-13-2014/web-security.html

版权声明 :本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 CN 许可协议。转载请注明出处!

目录
相关文章
|
2月前
|
安全
网易web安全工程师进阶版课程
《Web安全工程师(进阶)》是由“ i春秋学院联合网易安全部”出品,资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战,帮助学员纵向提升技能,横向拓宽视野,牢靠掌握Web安全工程师核心知识,成为安全领域高精尖人才。 ## 学习地址
23 6
网易web安全工程师进阶版课程
|
29天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
1月前
|
SQL 安全 PHP
CTF--Web安全--SQL注入之Post-Union注入
CTF--Web安全--SQL注入之Post-Union注入
|
1月前
|
SQL Web App开发 安全
CTF-Web安全--SQL注入之Union注入详解
CTF-Web安全--SQL注入之Union注入详解
|
2月前
|
安全 测试技术 网络安全
Web安全基础入门+信息收集篇
学习信息收集,针对域名信息,解析信息,网站信息,服务器信息等;学习端口扫描,针对端口进行服务探针,理解服务及端口对应关系;学习WEB扫描,主要针对敏感文件,安全漏洞,子域名信息等;学习信息收集方法及实现安全测试,能独立理解WEB架构框架,树立渗透测试开展思路!
19 0
Web安全基础入门+信息收集篇
|
2月前
|
安全 数据库 开发工具
Django实战:从零到一构建安全高效的Web应用
Django实战:从零到一构建安全高效的Web应用
61 0
|
2月前
|
安全 中间件 Go
Go语言Web服务性能优化与安全实践
【2月更文挑战第21天】本文将深入探讨Go语言在Web服务性能优化与安全实践方面的应用。通过介绍性能优化策略、并发编程模型以及安全加固措施,帮助读者理解并提升Go语言Web服务的性能表现与安全防护能力。
|
3月前
|
存储 JSON 安全
解密Web安全:Session、Cookie和Token的不解之谜
解密Web安全:Session、Cookie和Token的不解之谜
100 0
|
4月前
|
SQL 安全 Go
跨越威胁的传说:揭秘Web安全的七大恶魔
跨越威胁的传说:揭秘Web安全的七大恶魔
跨越威胁的传说:揭秘Web安全的七大恶魔
|
4月前
|
安全 网络安全 数据安全/隐私保护
探索Web安全:强化防护与漏洞扫描技术
在当今数字化时代,Web安全已经成为企业和个人必须关注的重要问题。本文将介绍Web安全的重要性,以及如何通过强化防护与漏洞扫描技术来保护网站和应用程序的安全。同时,还将探讨一些最新的Web安全威胁和应对策略,帮助读者更好地了解和应对Web安全挑战。
35 0