iOS SSL Pinning 保护你的 API】的更多相关文章

随着互联网的发展,网站全面 https 化已经越来越被重视,做为 App 开发人员,从一开始就让 API 都走 SSL 也是十分必要的.但是光这样就足够了吗? SSL 可以保护线上 API 数据不被篡改,但是防不了别有用心的发现你们 API,然后写脚本做一些事情.   Charles 的 SSL 代理 具体如何查看 SSL 的请求呢?可以使用 Charles 的 SSL 代理功能. 准备工作 下载安装最新版的 Charles(https://www.charlesproxy.com/),点开 H…
SSL pinning在构建一个高度安全的移动APP上扮演了一个十分重要的角色.然而如今好多用户在使用无线移动设备去访问无数不安全的无线网络. 这篇文章主要覆盖了SSL pinning 技术,来帮助我们处理最常见的安全攻击--中间人攻击(MITM). SSL(Secure Socket Layer 安全套接字层)确保客户端-服务器在HTTP请求的方式上将通讯内容加密----被指定为HTTPS(SSL上的HTTP).这种加密体系是基于PKI(Pbulic Key Infrastructure,公钥…
一:SSL Ping Mode 使用SSL来进行网络通信成为了很多mobile app的默认选择.最近一些文章发现:一些app并没有采用“额外的措施”来保证窃听不可以发生:这个“额外的步骤“就是SSL Pinning. iOS上SSL连接默认是这样的,client 和server建立一个连接,server返回其 SSL证书.如果这个证书是被OS信任的证书机构签发,那么这个连接就正常进行下去.随后交换session key进行通信.这个关键点就在于“信任“.如果攻击者进行中间人攻击,mobile…
0x00 前面 如果你是一干Web安全的,当你在测试目前大多数的手机APP应用程序时,你一定遇到过burpsuite无法抓到数据包的情况,开始你以为只是https的问题,但是当你使用了burpsuite伪证书也无法抓取到时,你心里除了有句“MMP……”外,你一定也在思考这其中的蹊跷. 为什么https的网站使用伪证书可以抓到,而在app里面同样的方法就抓不到?答案是:app启用了SSL Pinning(又叫“ssl证书绑定“). HTTPS的原理你必然懂,在建立ssl通道的过程中,当客户端向服务…
若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Windows 虚拟机 (VM). 本教程介绍如何执行下列操作: 创建 Azure Key Vault 生成证书或将其上传到 Key Vault 创建 VM 并安装 IIS Web 服务器 将证书注入 VM 并使用 SSL 绑定配置 IIS 本教程需要 Azure PowerShell 模块 3.6 或更高版本.…
若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Linux 虚拟机 (VM). 本教程介绍如何执行下列操作: 创建 Azure Key Vault 生成证书或将其上传到 Key Vault 创建 VM 并安装 NGINX Web 服务器 将证书注入 VM 并使用 SSL 绑定配置 NGINX Note 在 Azure 中国区使用 Azure CLI 2.0 之…
在<Asp.Net Core: Swagger 与 Identity Server 4>一文中介绍了如何生成受保护的Web Api的Swagger文档,本文介绍使用PostMan Canary测试受Identity Server 4保护的Web Api. 首先搭建一下Identity Server 4的环境,并且创建一个测试用的Web Api和访问Web Api的客户端,这部分在系列文章<Identity Server 4 从入门到落地>中有详细的介绍. Identity Serv…
如你所知,已废弃(Deprecated)的API指的是那些已经过时的并且在将来某个时间最终会被移除掉的方法或类.通常,苹果在引入一个更优秀的API后就会把原来的API给废弃掉.因为,新引入的API通常意味着可以更好的发挥新硬件或操作系统的性能,或者可以使用一些在构建原有API时根本还没有的语言特性(e.g. blocks). 每当苹果添加新方法的时候,他们都会在方法声明的后面用一个很特殊的宏来标明哪些iOS版本支持它们.例如,在UIViewController中,苹果引入了一个使用block来处…
原文: Everything You Need to Know about iOS and OS X Deprecated APIs 如你所知,已废弃(Deprecated)的API指的是那些已经过时的并且在将来某个时间最终会被移除掉的方法或类.通常,苹果在引入一个更优秀的API后就会把原来的API给废弃掉.因为,新引入的API通常意味着可以更好的发挥新硬件或操作系统的性能,或者可以使用一些在构建原有API时根本还没有的语言特性(e.g. blocks). 每当苹果添加新方法的时候,他们都会在方…
AGSDynamicLayer(ForSubclassEyesOnly) Category Reference Description This category organizes the methods that are relevant to subclassing a dynamic layer. Developer can create custom dynamic layers by paying special attention to the methods in this ca…
今天在查看苹果接口文档时,突然对于接口的声明知识点比较感兴趣,再网络找到下面这个比较不错的文章,记录一下并分享: 如你所知,已废弃(Deprecated)的API指的是那些已经过时的并且在将来某个时间最终会被移除掉的方法或类.通常,苹果在引入一个更优秀的API后就会把原来的API给废弃掉.因为,新引入的API通常意味着可以更好的发挥新硬件或操作系统的性能,或者可以使用一些在构建原有API时根本还没有的语言特性(e.g. blocks). 每当苹果添加新方法的时候,他们都会在方法声明的后面用一个很…
用携程机票为例: 携程联盟 飞机票.门票 联盟ID:278639 站点ID:739462 密钥KEY:BE57B925-E8CE-4AA2-AC8E-3EE4BBBB686F API_URL:openapi.ctrip.com http://open.ctrip.com/InlandFlight/OTA_FlightSearch.aspx 1.首先在使用携程api的时候你需要明白什么是soap? SOAP(SimpleObjectaccessPRotocal,简单对象访问协议)技术有助于实现大量…
简介 尽管Bmob已经提供了一套SDK供开发者使用,但有时候开发者可能希望能直接与Bmob后台进行直接交互,以达到某些特别的需求(直接操作_User表.同步网络请求等).而RESTful API可以使得只要能够发送HTTP请求的设备可以先Bmob进行数据交互.因此,在使用Bmob开发iOS应用过程中,我们也可以使用RESTful来完成交互. 使用方法 只要使用标准的HTTP请求即可.以添加对象为例,官方文档文档的描述如下:  也就是我们需要设置以下几个参数 - url - method - h…
最近在协助调研 Apollo 生成的代码是否有可能跨 Query 共享模型的问题,虽然初步结论是不能,并不是预期的结果,但是在调研过程中积累的一些经验,有必要记录下.如果你也对 Graphql 感兴趣,不妨先从 Github 的 Graphql API 来切手实践. 关于 Graphql 官网 尽管只是做客户端的一些实践,我还是建议你先过一遍 Graphql 官网的学习指南.这样能更快速地理解概念.一些客户端库的文档,大部分都只是介绍基本用法. 中文版,可以直接看 http://graphql.…
There was an internal API error. 错误原因:把Product Name作为程序名称,程序名称错乱 解决方法:检查Product Name, 不要包含中文以及特殊字符.在info.plist中新增Bundle display name:我的程序名称.程序名称改为英文,Product Name也改为一样的. ----------------------------------------------------------------------- 当我们改了工程的名…
目前正在使用asp.net core 2.0 (主要是web api)做一个项目, 其中一部分功能需要使用js客户端调用python的pandas, 所以需要建立一个python 的 rest api, 我暂时选用了hug, 官网在这: http://www.hug.rest/. 目前项目使用的是identity server 4, 还有一些web api和js client. 项目的早期后台源码: https://github.com/solenovex/asp.net-core-2.0-we…
http://blog.csdn.net/zcrong/article/details/51617348 在Other Linker Flags中添加: -Wl,-sectcreate,__RESTRICT,__restrict,/dev/null   再来看看生成的macho文件多了一个__RESTRICT/__restrict  section 类似美团某个版本采取的section办法 为什么加了这样的一个section就能阻止dylib注入了呢?     在这里找到了答案:http://w…
/* Generated by RuntimeBrowser Image: /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices */ @interface LSApplicationWorkspace : NSObject // Image: /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices + (i…
上一篇文章(https://www.cnblogs.com/meowv/p/12924859.html)再次把Swagger的使用进行了讲解,完成了对Swagger的分组.描述和开启小绿锁以进行身份的认证授权,那么本篇就来说说身份认证授权. 开始之前先搞清楚几个概念,请注意认证与授权是不同的意思,简单理解:认证,是证明你的身份,你有账号密码,你可以登录进我们的系统,说明你认证成功了:授权,即权限,分配给用户某一权限标识,用户得到什么什么权限,才能使用系统的某一功能,就是授权. 身份认证可以有很多…
1.下面列出截止2016年底市面上常见的免费CA证书: 腾讯云SSL证书管理(赛门铁克TrustAsia DV SSL证书)阿里云云盾证书服务(赛门铁克DV SSL证书)百度云SSL证书服务Let's Encrypt国内BAT免费证书期限均为1年,每个证书对应一个独立的域名,可以申请多个证书,前提是需要注册账号.Let's Encrypt免费证书期限均为3个月,证书支持泛域名(支持多个域名).另外,补充2个已经被Firefox, Chrome等浏览器明确表示弃用的CA厂商:StartSSL免费D…
设计好一个美丽的 REST + JSON API 之后,怎样对你的 API 进行保护?在 Stormpath,我们花了 18 个月来寻找最佳实践.将其一一实践于 Stormpath API 中并分析其效果.本文将阐述怎样保护 REST API. 选择合适的安全协议 行业标准认证协议有助于减少就保护你的 API 所做的相关投入.也能够使用自己定义安全协议.但仅限于一些非常特殊的场景. 下面是几个主要协议的长处和缺点的概述. 基本认证 w/TLS 基本认证是三个通用协议(基本.Oauth 1.0a.…
在上一篇博客中,自己动手写了一个Middleware来处理API的授权验证,现在就采用另外一种方式来处理这个授权验证的问题,毕竟现在也 有不少开源的东西可以用,今天用的是JWT. 什么是JWT呢?JWT的全称是JSON WEB TOKENS,是一种自包含令牌格式.官方网址:https://jwt.io/,或多或少应该都有听过这个. 先来看看下面的两个图: 站点是通过RPC的方式来访问api取得资源的,当站点是直接访问api,没有拿到有访问权限的令牌,那么站点是拿不到相关的数据资源的. 就像左图展…
iOS9 Day-by-Day是作者Chris Grant新开的一个系列博客,覆盖了iOS开发者必须知道的关于iOS 9的新技术与API,并且还进行了实际操作演练,每篇文章中相关的代码Chris都会将其托管到GitHub. 在第一篇文章中,Chris介绍了iOS 9的三种搜索API: 1)NSUserActivity,索引用户活动以及App的状态. 2)iOS 9新增的CoreSpotlight.framework提供了增.删.改.查等搜索API,可以索引App的内容. 3)Web Markup…
这两天遇到一个应用场景,需要对内网调用的部分 web api 进行安全保护,只允许请求头账户包含指定 key 的客户端进行调用.在网上找到一篇英文博文 ASP.NET Core - Protect your API with API Keys,该文中的代码完美基于 ASP.NET Core 内置的鉴权(Authentication) 与授权(Authorization)机制解决了这个问题,于是站在巨人的肩上自己实现了一遍,在这篇随笔中做个记录. ASP.NET Core Authenticati…
一,引言 上一节讲到Azure AD的一些基础概念,以及Azure AD究竟可以用来做什么?本节就接着讲如何在我们的项目中集成Azure AD 包含我们的API资源(其实这里还可以在 SPA单页面应用,Web项目,移动/桌面应用程序集成Azure AD),号了,废话不多说,开始今天的内容. 二,正文 上一篇介绍到 Azure AD 其实是微软基于云的表示和授权访问管理服务,它可以帮助我们在Azure中登录和访问资源.我们可以通过Azure的标识平台生成应用程序,采用微软表示登录,以及获取令牌来调…
一,引言 上一节讲到如何在我们的项目中集成Azure AD 保护我们的API资源,以及在项目中集成Swagger,并且如何把Swagger作为一个客户端进行认证和授权去访问我们的WebApi资源的?本节就接着讲如何在我们的项目中集成 Azure AD 保护我们的API资源,使用其他几种授权模式进行授权认证,好了,开始今天的表演.…
这一篇文章, 加上里面链接的几篇文章(一个百度的, 两个阮一峰的), 全看完应该了解得差不多了 如何打造一个安全的App?这是每一个移动开发者必须面对的问题.在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多,这就导致了许多iOS开发人员对于安全性方面没有太多的深入,但对于一个合格的软件开发者来说,安全知识是必备知识之一. 对于未越狱的iOS设备来说,由于强大的沙箱和授权机制,以及Apple自己掌控的App…
前言 在 iOS 开发中,一般情况下,简单的向某个 Web 站点简单的页面提交请求并获取服务器的响应,用 Xcode 自带的 NSURLConnection 是能胜任的.但是,在绝大部分下我们所需要访问的 Web 页面则是属于那种受到权限保护的页面,并不是有一个简单的 URL 可以访问的.这就涉及到了 Session 和 Cookie 的处理了,在此时使用 NSURLConnection 也是能够达到要求的,只是其中处理起来的复杂度和难度就提升了.为了更好的处理向 Web 站点的请求,包括处理…
作者:Jack Cox.Nathan Jones.John Szumski 译者:张龙  勘误  前言  第 I 部分 理解iOS与企业网络 这一部分从高层次概览了iOS网络以及针对移动网络架构的最佳实践.   第 1 章 iOS 网络功能介绍 本章回顾了用于将设备连接到服务器或是其它设备的网络编程基础知识以及iOS提供的API. 第 2 章 设计服务架构 本章介绍了部署设备友好的网络应用的架构模式.  第 II 部分 HTTP请求:iOS网络功能 这部分深入介绍了iOS 设备与服务器通信所需的…
一.证书链 SecTrustRef: SecTrustRef trust = challenge.protectionSpace.serverTrust; 需要先拿出一个 SecTrustRef 对象,它是一种执行信任链验证的抽象实体,包含着验证策略(SecPolicyRef)以及一系列受信任的锚点证书,而我们能做的也是修改这两样东西而已. SecTrustResultType trustResult = kSecTrustResultInvalid; // 函数的内部递归地从叶节点证书到根证书…