自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 小白de架构哲学 - SDK接口设计&对接流程

一、前言基本上系统都会涉及与外部系统的交互,不论数据、或者业务上,这就涉及到 SDK 接口开发,假设接口由您来设计并开发,那么如何保证整个流程的对接、安全性又如何保证呢?ok,开始今天的学习。(一)SDK 介绍SDK 即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。(二)SDK 对接流程图二、工具工欲善其事,必先利其器看上面流程图其实基本差不多了解

2020-05-14 23:08:23 4212 6

原创 白帽子讲Web安全(第 18 章 安全运营)

第 18 章 安全运营俗话说,安全是“三分技术,七分管理”。安全对于企业来说,结果才是最重要的。安全方案设计完成后,即使看起来再美好,也需要经受实践的检验。18.1 把安全运营起来互联网公司如何规划自己的安全蓝图呢?从战略层面上来说, Aberdeen Group 提到了三句话: Find and Fix,Defend and Defer,Secure at the Source。一个安全评估的过程,就是一个“ Find and Fix ” 的过程。通过漏洞扫描、渗透测试、代码审计等方式,可以发现系

2020-08-30 14:43:25 211

原创 白帽子讲Web安全(第 17 章 安全开发流程( SDL ))

第 17 章 安全开发流程( SDL )安全开发流程,能够帮助企业以最小的成本提高产品的安全性。它符合“ Secure at the Source ”的战略思想。实施好安全开发流程,对企业安全的发展来说,可以起到事半功倍的效果。17.1 SDL 简介SDL 的全称是 Secureity Development Lifecycle ,即:安全开发生命周期。它是由微软最早提出的,在软件工程中实施,是帮助解决软件安全问题的办法。SDL 是一个安全保证的过程,其重点是 软件开发,它在开发的所有阶段都引入了安全

2020-08-30 14:42:33 1138

原创 白帽子讲Web安全(第 16 章 互联网业务安全)

第 16 章 互联网业务安全16.1 产品需要什么样的安全一个完整的产品有许多特性,互联网产品亦如此。互联网产品其实是网站提供的在线服务产品特性包括性能、美观、方便性等方面,同时也包括安全。一般来说,安全是产品的一个特性。安全本身可视作产品的一个组成部分。一个好的产品,在设计之初,就应该考虑是否会存在安全隐患,从而提前准备好对策。将安全视为产品特性,往往也就解决了业务与安全之间的矛盾。其实业务与安全之间本来是没有冲突的,出现冲突往往是因为安全方案设计的不够完美。比如安全方案的实现成本相对较高,从而

2020-08-30 14:41:20 235

原创 白帽子讲Web安全(第 15 章 Web Server 配置安全)

第 15 章 Web Server 配置安全Web 服务器是 Web 应用的载体,如果这个载体出现安全问题,那么运行在其中的 Web 应用程序的安全也无法得到保障。因此 Web 服务器的安全不容忽视。Web 服务器安全,考虑的是应用部署时的运行环境安全。这个运行环境包括 Web Server 、脚本语言解释器、中间件等软件,这些软件所提供的一些配置参数,也可以起到安全保护的作用。15.1 Apache 安全尽管近年来 Nginx 、 LightHttpd 等 Web Server 的市场份额增长得很

2020-08-23 14:46:18 234

原创 白帽子讲Web安全(第 14 章 PHP 安全)

第 14 章 PHP 安全14.1 文件包含漏洞严格来说,文件包含漏洞是“代码注入”的一种。在“注入攻击”一章中,曾经提到过“代码注入”这种攻击,其原理就是注入一段用户能够控制的脚本或代码,并让服务器端执行。“代码注入”的典型代表就是文件包含( File Inclusion )。文件包含可能会出现在 JSP、PHP、ASP 等语言中,常见的导致文件包含的函数如下。PHP:include() , include_one() , require() , require_once() , fopen()

2020-08-23 13:30:36 143

原创 白帽子讲Web安全(第 13 章 应用层拒绝服务攻击)

第 13 章 应用层拒绝服务攻击13.1 DDOS 简介DDOS 又称为分布式拒绝服务,全称是 Distributed Denial of Service 。 DDOS 本是利用合理的请求造成资源过载,导致服务不可用。分布式拒绝服务攻击,将正常请求放大了若干倍,通过若干个网络节点同时发起攻击,以达成规模效应。这些网络节点往往是黑客们所控制的“肉鸡”,数量达到一定规模后,就形成了一个“僵尸网络”。大型的僵尸网络,甚至达到了数万、数十万台的规模。如此规模的僵尸网络发起的 DDOS 攻击,几乎是不可阻挡的。

2020-08-20 12:46:36 292

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

第 12 章 Web框架安全12.1 MVC 框架安全12.2 模板引擎与 XSS 防御在 View 层,可以解决 XSS 问题。XSS 攻击是在用户的浏览器上执行的,其形成过程则是在服务器端页面渲染时,注入了恶意的 HTML 代码导致的。从 MVC 架构来说,是发生在 View 层,因此使用“输出编码”的防御方法更加合理,这意味着需要针对不同上下文的 XSS 攻击场景,使用不同的编码方式。“输出编码”的防御方法:在 HTML 标签中输出变量;在 HTML 属性中输出变量;在 script

2020-08-18 20:04:58 133

原创 白帽子讲Web安全(第 11 章 加密算法与随机数)

第 11 章 加密算法与随机数加密算法与伪随机数算法是开发中经常会用到的东西,但加密算法的专业性非常强,在 Web 开发中,如果对加密算法和伪随机数算法缺乏一定的了解,则很可能会错误的使用它们,最终导致应用出现安全问题。11.1 概述密码学有着悠久的历史,它满足了人们对安全的最基本需求----保密性。密码学可以说是安全领域发展的基础。常见的加密算法通常分为 分组加密算法 与 流密码加密算法 两种,两者的实现原理不同。分组加密算法基于“分组”( block )进行操作,根据算法的不同,每个分组的长

2020-08-18 09:25:53 473

原创 设计模式深耕(原型模式( Prototype Pattern ))

原型模式( Prototype Pattern )1 原型模式的定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype:声明一个拷贝自身的接口。ConcretePrototype:实现一个拷贝自身的操作。Client:让一个原型拷贝自身从而创建一个新的对象。原型模式的核心是一个 Clone() 方法,通过该方法进行对象的拷贝,net 提供了一个 ICloneable 的接口来标示这个对象是可拷贝的,为什么说是“标示”呢?首先 ICloneable 是一个接口

2020-08-15 23:44:43 135

原创 白帽子讲Web安全(第 10 章 访问控制)

第 10 章 访问控制10.1 What Can I Do?权限控制,或者说访问控制,广泛应用于各个系统中。抽象的说,都是某个主体( subject )对某个客体( object )需要实施某种操作( operation ),而系统对这种操作的限制就是权限控制。在一个安全系统中,确定主体的身份是“认证”解决的问题;而客体是一种资源,是主体发起的请求的对象。在主体对客体进行操作的过程中,系统控制主体不能“无限制”的对客体进行操作,这个过程中就是“访问控制”。主体“能够做什么”,就是权限。权限可以细分成

2020-08-15 09:16:14 199

原创 白帽子讲Web安全(第 9 章 认证与会话管理)

第 9 章 认证与会话管理“认证”是最容易理解的一种安全。如果一个系统缺乏认证手段,明眼人都能看出来这是“不安全”的。最常见的认证方式就是用户名与密码,但认证的手段却远远不止于此。9.1 Who am I ?很多时候,人们会把“认证”和“授权”两个概念搞混,甚至有些安全工程师也是如此。实际上“认证”和“授权”是两件事情,认证的英文是 Authentication ,授权则是 Authorization 。分清楚这两个概念其实很简单,只需要记住下面这个事实:认证的目的是为了认出用户是谁,而授权的母的是

2020-08-10 16:35:29 251

原创 白帽子讲Web安全(第 8 章 文件上传漏洞)

第 8 章 文件上传漏洞8.1 文件上传漏洞概述文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,有时候几乎没有什么技术门槛。文件上传功能本身是一个正常业务需求,对于网站来说,很多时候也确实需要用户将文件上传到服务器。所以“文件上传”本身没有问题,但有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。文件上传后导致的常见安全问题一般有:上传文件是 Web 脚本语言,服务器

2020-08-10 16:34:25 169

原创 白帽子讲Web安全(第 7 章 注入攻击)

第 7 章 注入攻击注入攻击是 Web 安全领域中一种最为常见的攻击方式。安全设计原则----“数据与代码分离”原则,它可以说是专门为了解决注入攻击而生的。注入攻击的本质,是把用户输入的数据当作代码执行。这里有两个关键条件:用户能够控制输入原本程序要执行的代码,拼接了用户输入的数据。7.1 SQL注入在 SQL 注入的过程中,如果网站的 Web 服务器开启了错误回显,则会为攻击者提供极大的便利,比如攻击者在参数中输入一个单引号“ ' ”,引起执行查询语句的语法错误,服务器直接返回了错误信息

2020-08-09 12:42:21 277

原创 白帽子讲Web安全(第 6 章 HTML 5 安全 )

第 6 章 HTML 5 安全HTML 5 是 W3C 制定的新一代 HTML 语言的标准。6.1 HTML 5 新标签6.1.1 新标签的 XSSHTML 5 定义了很多新标签、新事件,这有可能带来新的 XSS 攻击。一些新 XSS Felter 如果建立了一个黑名单的话,则可能就不会覆盖到 HTML 5 新增的标签和功能,从而避免发生 XSS 。HTML 5 中新增的一些标签和属性,使得 XSS 等 Web 攻击发生了新的变化,为了总结这些变化,有安全研究者建立了一个 HTML 5 Secu

2020-08-09 12:22:53 192

原创 白帽子讲Web安全(第 5 章 点击劫持( ClickJacking ))

第 5 章 点击劫持( ClickJacking )2008 年,安全专家 Robert Hansen 与 Jeremiah Grossman 发现了一种被他们称为“ ClickJacking ”(点击劫持)的攻击,这种攻击方式影响了几乎所有的桌面平台,包括 IE、Safari、Firefox、Opera 以及 Adobe Flash。两位发现者准备在当年的 OWASP 安全大会上公布并进行演示,但包括 Adobe 在内的所有厂商,都要求在漏洞修补前不要公开此问题。5.1 什么是点击劫持点击劫持是一种

2020-08-07 10:09:38 261

原创 白帽子讲Web安全(第 4 章 跨站点请求伪造( CSRF ))

第 4 章 跨站点请求伪造( CSRF )CSRF 的全名是 Cross Site Request Forgery,翻译成中文就是跨站点请求伪造。4.1 CSRF 简介4.2 CSRF 进阶4.2.1 浏览器的 Cookie 策略攻击者伪造的请求之所以能够被搜狐服务器验证通过,是因为用户的浏览器成功发送了 Cookie 的缘故。浏览器所持有的 Cookie 分为两种:“ Session Cookie ”,又称“临时 Cookie ”,保存在浏览器进程的内存空间中;“ Third-party

2020-08-06 10:44:53 165

原创 白帽子讲Web安全(第 3 章 跨站脚本攻击( XSS ))

第 3 章 跨站脚本攻击( XSS )3.1 XSS 简介跨站脚本攻击,英文全称是 Cross Site Script,本来缩写是 CSS,但是为了和层叠样式表(Cascading Style Sheet,CSS )有所区别,所以在安全领域叫做“XSS”。XSS 攻击,通常指黑客通过“ HTML 注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。在一开始,这种攻击的演示案例是跨域的,所以叫做“跨站脚本”。针对各种不同场景长生的XSS,需要区分情景对待。XSS 根

2020-08-05 09:47:12 569

原创 白帽子讲Web安全(重点摘录)

书名:白帽子讲Web安全作者:吴翰清出版社:电子工业出版社阅读进度:重点摘录:第 1 章 我的安全世界观第 2 章 浏览器安全第 3 章 跨站脚本攻击( XSS )第 4 章 跨站点请求伪造( CSRF )第 5 章 点击劫持(ClickJacking)第 6 章 HTML 5 安全第 7 章 注入攻击第 8 章 文件上传漏洞第 9 章 认证与会话管理第 10 章 访问控制第 11 章 加密算法与随机数第 12 章 Web 框架安全第 13 章 应用层拒绝服务攻击第

2020-07-27 09:12:44 333

原创 白帽子讲Web安全(第 2 章 浏览器安全)

第 2 章 浏览器安全2.1 同源策略同源策略( Same Origin Policy )是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说 Web 是构建在同源策略的基础之上的,浏览器只是针对同源策略的一种实现。浏览器的同源策略,限制了来自不同源的“ document ”或脚本,对当前“ document ”读取或设置某些属性。在浏览器中,<script> 、<img> 、<iframe> 、<l

2020-07-27 09:10:06 186

原创 白帽子讲Web安全(第 1 章 我的安全世界观)

第 1 章 我的安全世界观互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了。1.1 Web安全简史研究计算机系统和网络的人,被称为“ Hacker ”,他们对计算机系统有着深入的理解,因此往往能够发现其中的问题。“ Hacker ”在中国按照音译,被称为“黑客”。在计算机安全领域,黑客是一群破坏规则、不喜欢拘束的人,因此总想着能够找到系统的漏洞,以获得一些规则之外的权力。对于现代计算机系统来说,在用户态的最高权限是 root ( administrator ),也是黑客们最渴望能够

2020-07-27 09:08:04 1821

原创 记一次Bug修复 - Https请求Http引发跨域问题

一、前言一般大家理解包括笔者,都是任务跨域只要设置响应头Access-Control-Allow-Orign、Access-Control-Allow-Methods 、 Access-Control-Allow-Credentials 即可,但下面介绍一次因https请求http,导致安全等级降级引发跨域问题。二、报错实际情况用户->https->httpChrome报错情况如下响应头又有相应的 Access-Control-Allow-Orign三、验证跨域的具体原因h

2020-07-07 09:36:15 8121 3

原创 小白de技术哲学(Redis) - 分布式锁

一、前言在谈 分布式锁 之前不得不聊下 线程锁 、 进程锁 :线程锁:在编程时,给方法、代码块加锁,使得在同一时刻只能有一线程执行此方法、代码块保证线程安全。进程锁:控制在同一操作系统中多个进程同时访问一个共享资源,只是因为程序的独立性。(一)介绍分布式锁是当多个进程不在统一操作系统中,控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性。(二)分布式锁需要具备哪些条件互斥性:在任意一个

2020-07-06 22:33:40 298 2

原创 小白de架构哲学 - 系统单一用户在线

一、需求描述:当用户的账号在另一个浏览器登录时,需要把当前浏览器的登录强制下线二、业务流程用户登录处理用户请求心跳请求(X-Keep-Alive)(一)用户登录登录采用任意登录模式均可以,主要生成当前客户端标识(X-XSRF-TOKEN)记录用户的客户端标识,有两种方式:数据库则创建一张 UserOnline 表,字段:用户主键、客户端标识分布式缓存( Redis ), Hash 类型存储跟数据库意思相近 Key :用户主键,value:客户端标识(二)处理用户

2020-06-07 18:53:10 245 2

原创 优雅代码系列 - 线程占用

一、前言消费队列时,不占用主线程,并且保持监听。二、解决方案思路1 根据需求咱们在不占用主线程时开启一个线程,执行监听动作就可以达到效果。2 保持监听,意味着线程占用,线程不能闲置。三、代码(一)控制台获取输入值、保持线程占用 // 1 利用控制台获取输入值,保持线程占用 { Console.Read(); //Console.ReadKey(); //Console.ReadLine(); }Ps:Asp.Ne

2020-06-07 12:34:29 199

原创 小白de架构哲学 - 客户端、服务端交互数据脱敏处理

一、需求描述:等保三级要求:客户端、服务端交互数据脱敏处理翻译:客户端、服务端Api接口交互涉及敏感数据(身份证号、手机号、详细地址等)防抓包二、业务流程图三、实现&场景应用(一)客户端请求服务端客户端对含有敏感数据的请求入参整体参数流进行 对称加密;对 对称加密后的密文 进行 自定义混淆 处理并得到 Data 参数;对 Data 参数按约定好的格式设置到 Request管道参数流;Header 添加请求参数加密标识 X-IsEncrypt。服务端服务端 R

2020-05-28 11:59:14 960

原创 11. 盛最多水的容器

一、题目二、解题难度时间复杂度空间复杂度中等O(n)O(1)思路:双指针夹逼法1 某两条线之间区域之间的面积会受到线的高度、距离影响,我们放两个指针分别在开始、末尾。2 计算两条线之间区域面积,每次计算并存储,比较之前存储的最大区域面积,较大则替换。3 每次比较后,较短线者向中间移。 /// <summary> /// 双指针夹逼法 /// </summary> /// <remarks> //

2020-05-24 22:39:47 109

原创 1. 两数之和

一、题目二、解题难度时间复杂度空间复杂度简单O(n)O(n)思路:边找边存法1 两数之和等于结果值减某个值等于另外一个值 a+b=target -> b=target-a。2 利用集合索引的方式把key=target-a的值,value=数组a元素下标存到集合中。3 循环数组元素,边找边存的方式。 /// <summary> /// 边找边存法 /// </summary> /// <remarks

2020-05-24 22:16:03 179

原创 AOP系列之Filter管道模型

一、前言Filter 是延续 Asp.Net Mvc 的产物,同样保留了五种的Filter,分别是Authorization Filter、Resource Filter、Action Filter、Exception Filter、Result Filter。通过不同的 Filter 可以有效处理一些共通的动作。(一)Filter 介绍Authorization Filter:优先级1;权限过滤器,通常在 Filter Pipleline 中首先执行,并用于决定当前客户端 Request 请求

2020-05-24 11:23:26 554

原创 AOP系列之AspectCore开源框架

一、前言在使用某种技术更多我们在技术选型,只要网上一些能满足需求,我们就直接站在巨人肩膀上前行。秉着 满足需求、最轻量 的原则,我们选择了社区活跃度比较高的 Asp.Net Core 平台的 AOP 开源框架组件 AspectCore 。GitHub地址:https://github.com/dotnetcore/AspectCore-Framework二、使用方法使用 AspectCore 需要几个步骤:引入最新版Nuget包: AspectCore.Core 、AspectCore.Ex

2020-05-24 11:07:41 1449 2

原创 AOP系列之初探

一、前言第一次看到AOP这个技术名词,满满的疑问。AOP 是什么?AOP 做什么用的?AOP 是如何实现的?…带着疑问今天我们来初探学习下 AOP二、AOP 介绍&作用AOP 为 Aspect Oriented Programming 的缩写, 意为:面向切面编程,也叫面向方法编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 AOP 是 OOP 的延续,也是软件开发的一个热点,更是架构的一种软件开发技术。AOP 技术利用一种“横切”的技术,破解封装对象

2020-05-15 23:55:45 414

SDK对接开发包.zip

SDK设计解决方案,SDK接口规范开发包解决方案,SDK流程设计解决方案; 接口安全采用非对称的加密算法 RSA 进行签名,保证接口的完整性安全; 接口数据安全采用对称加密算法 AES 对业务数据进行加密,密文传输; 时效性采用每次请求时间戳保证接口的有效请求。

2020-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除