首页 > 其他分享 >《白帽子讲Web安全》 读书

《白帽子讲Web安全》 读书

时间:2024-08-07 21:38:30浏览次数:4  
标签:XSS 帽子 Web 安全 读书 防御 权限 请求

前段时间看《码农翻身2》时,里面讲到一部分 安全 相关的知识点很是有趣, 又想起多年前一位朋友推荐的《白帽子讲Web安全》,据说这本书是安全领域的圣经,遂跑到图书馆借了这本书,下定决心读一读。
这本书前前后后翻了一周的时间,虽然本身我不是从事安全方向的研发,但觉得有一部分知识还是对日常工作有帮助的。

1.在安全圈子里 素有 白帽 黑帽 一说, 黑帽子是指那些造成破坏的黑客,而白帽子则是研究安全,但不造成破坏的黑客。白帽子均以建设更安全的互联网为己任。
2.安全三要素:机密性Confidentiality 加密, 完整性Integrity 数字签名, 可用性Availability Dos拒绝服务攻击
3.Secure By Default原则,白名单 黑名单的思想,优先使用白名单。 最小权限原则,不过度授权。 Defense in Depth 纵深防御 从不同层面不同角度做安全方案。 数据与代码分离原则 防注入。
4.不可预测性原则, 随机值 让黑客找不到规律
5.同源策略 Same Origin Plicy, 除了浏览器 其他Flash 等也有类似的策略
6.浏览器沙箱 资源隔离类模块, 隔离资源 让病毒只在有限的环境中运行, 从而保护大部分系统的安全
7.XSS 跨站脚本攻击 Cross Site Scirpt,本来缩写是Css ,但为了和层叠样式表 Cascading Style Sheet Css区分,所以安全领域叫 Xss
8.XSS分类: 反射性(诱使人点击),存储型(恶意js的脚本存储到服务器端), DOM Based Xss(DOM节点结构被恶意修改)
9.XSS攻击角度: 恶意脚本,劫持Cookie,伪造GET POST请求,钓鱼网站界面,识别用户浏览器,识别用户安装软件,HistoryHack用户曾经访问的网站,获取用户真实IP
10.XSS构造技巧: 利用字符编码(不识别字符被吃掉),绕过长度限制(event, localtion.hash,注释符号), 通过标签,window.name
11.XSS防御: HttpOnly, 输入检查(前后端都检查), 输出检查(变量输出到html时转换)
12.正确的防御XSS: HtmlEncode,JavascriptEncode, ESAPI.encoder().encodeForCss(), ESAPI.encoder().endcodeForUrl() , Anti_Samy 最好的XssFilter
13.CSRF 跨站点请求伪造 Cross Site Request Forgery. Cookie, P3P
14.CSRF防御: 验证码,RefererCheck:发送请求时会带上Referer信息告诉服务器上从哪个界面链接过来的。 Anti CSRF Token
15.ClickJacking 点击劫持:视觉的欺骗,拖拽,图片覆盖,触屏劫持. 防御:禁止跨域的iframe,Http头 X-Frame-Options
16.跨域访问的标准: Access-Control-Allow_Origin 等
17.SQL注入, 盲注 调试, 数据库内置函数 TimingAttack。 执行命令,攻击存储过程, 编码问题。
18.预编译SQL,检查数据类型,使用安全函数 ESAPI.encoder().encodeForSQL
19.XML注入, 代码注入。 数据与代码分离原则 防注入
20.文件上传漏洞, 脚本被上传后执行。 策略:文件上传目录不可置信, 白名单判断文件类型, 随机数修改文件名和路径, 单独设置文件服务器域名
21.Authencication认证, Authorization授权。
22.密码 必须以不可逆的加密算法 或者是 单向散列函数算法 加密存储。 加Salt计算。
23.垂直权限管理, RBAC基于角色的访问控制,最小权限,默认拒绝。
24.水平权限管理, 数据的权限控制,暂时没有统一的解决方案
25.加密算法 有可能被破解掉 密钥。
26.伪随机数, 安全随机数java.security.SecureRandom
27.DDOS 分布式拒绝服务 Distributed Denial of Service, 利用合理的请求造成资源过载 ,导致服务不可用。 网络层的DDOS,专门的设备和网络供应商。
28.应用层的DDOS, 限制请求频率, 合理使用memchache, 负载均衡, 限制每个IP的请求频率, 验证码CAPTCHA Completely Automated Public Turing Test to Tell Computers and Humans Apart,全自动区分计算机和人类的图灵测试。 (原来有正规的缩写)。 WebServer加防御。
29.正则表达式的ReDOS 消耗大量服务器资源,导致服务性能下降, 发生回溯
30.WebServer 安全, Apache, Nginx, Tomcat(去掉默认的manager应用)

标签:XSS,帽子,Web,安全,读书,防御,权限,请求
From: https://www.cnblogs.com/hichanglong/p/18347918

相关文章

  • astro中创建web components
    先创建AstroHeart.astro:<script>//DefinethebehaviourforournewtypeofHTMLelement.classAstroHeartextendsHTMLElement{constructor(){super();letcount=0;constheartButton=this.quer......
  • web页面中直接调用c++/c/go代码?【wasm】
    背景最近在做rosbag的可视化工具,网上找了个源码参考(foxglove)。成功down下来,跑起来了。于是乎,开始研究前后端代码;结果居然花了一下午没找到后端代码,不明白为什么纯web页面就可以解析rosbag(以前都是用node.js或者c++代码解析的)。过程在找了一下午之后,又回到了老办法;看netork,果然......
  • 使用Streamlit构建一个web模拟HTTP请求工具
    目录前言HTTP工具功能点:1.导入库: 2.设置页面配置:3.Markdown格式的说明文本:4.用户输入界面:5.发送请求按钮和逻辑:6.发送HTTP请求并计算请求细节:7.总结 前言    最初就是因为在微信看到一篇文章中,看到此http工具的制作因为觉得Streamlit有无限......
  • node.js: mysql sequelize in WebStorm 2023.1
    mysql:select*fromtutorials;#CREATETABLEIFNOTEXISTS`tutorials`(`id`INTEGERNOTNULLauto_increment,`title`VARCHAR(255),`description`VARCHAR(255),`published`TINYINT(1),`createdAt`DATETIMENOTNULL,`updatedAt`DATETIMENOTNULL,PRIMA......
  • 【QT】Qt中Websocket的使用
    一、WebSocket的定义        WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC6455,并由RFC7936补充规范。WebSocketAPI也被W3C定为标准。                WebSocket使得客户端和服务器之间的数据......
  • 搭建 Web 群集Haproxy
    案例概述        Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,高并发性能没有Haproxy好。Haproxy官方网站是http://ww......
  • GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!
    web安全现在占据了企业信息安全的很大一部分比重,每个企业都有对外发布的很多业务系统,如何保障web业务安全也是一项信息安全的重要内容。然而Web安全是一个实践性很强的领域,需要通过大量的练习来建立对漏洞的直观认识,并积累解决问题的经验。Web安全与防护技术是当前安全界关......
  • 腾讯云AI代码助手评测:如何智能高效完成Go语言Web项目开发
    腾讯云AI代码助手评测:如何智能高效完成Go语言Web项目开发......
  • web渗透—SSRF
    一:SSRF介绍是一种由web服务器发出请求的漏洞;它能够请求到与它相连的内网资源;通过外网服务器当作跳板请求内网资源!二:SSRF常用函数(1)file_get_contents函数//可以读取本地文件;也可以通过url读取相关远程文件<?php $data=file_get_contents('url'); echo$data;?>(2)cur......
  • 图扑 HT for Web 轻松构建组态拓扑结构
     在现代的数据可视化和网络管理中,拓扑图是一种非常重要的工具。它可以直观地展示节点(Node)和节点之间的关系(Edge)。无论是在2D还是3D环境中,拓扑图都可以帮助我们更好地理解和管理复杂的系统。然而,由于这些拓扑图通常极为复杂,传统的手动布局方式不仅繁琐且耗时。鉴于此,图......