SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
基于SaaS的OVP平台设计

          @廖雪峰

   视讯天下 www.video-tx.com
什么是OVP
Online Video Platform
什么是OVP
B2B模式
什么是OVP
B2B模式
C2C和B2B2C




      SaaS
OVP流程


     定制播放器



上传    视频库    发布   观看



      转码
跨平台问题
浏览器:FLV,MP4


iOS:TS流


Android:MP4
iOS视频
HTTP Live Streaming


 #EXTM3U              #EXTM3U
 #EXTINF:10,          #EXT-X-STREAM-INF: BANDWIDTH=200000
 0.ts                 low.m3u8
 #EXTINF:10,          #EXT-X-STREAM-INF: BANDWIDTH=500000
 1.ts                 high.m3u8
 #EXTINF:10,
 2.ts
 #EXTINF:10,
 3.ts
 #EXTINF:10,
 4.ts
 #EXT-X-ENDLIST
Flash视频播放问题
快速


自适应带宽


快速启动


按需下载
Flash视频播放问题
快速


     RTMP

      键帧定位: http pseudo streaming


     小切片定位: http live streaming
Flash视频播放问题
自适应带宽


     RTMP多码流


     HTTP Live Streaming

 高


 中


 低
Flash视频播放问题
快速启动


  RTMP

  递增式小切片


  1   2   3   4   5   5   5   5
Flash视频播放问题
按需下载


  RTMP

  小切片加载
为什么不采用RTMP
快速         杂的私有协议


自适应带宽     RTMP服务器贵


快速启动      CDN加速贵


按需下载      不支持客户端缓存
小切片优势
快速        HTTP协议

          高性能免费Web服务器
自适应带宽

          CDN加速
快速启动

          客户端缓存
按需下载
小切片劣势
Flash版本>=10.1


小文件太多


                     abc-300000-350000.flv



                abc.flv?start=300000&end=350000




                     abc.flv
解决CDN问题
自建CDN成本高     使用商用CDN服务


CDN服务稳定性问题   多CDN备份+切换


RTMP加速成本高    使用HTTP


大文件加速容易中断    小切片加速
直播解决方案
RTMP推流


HTTP切片
                                    播放器

CDN加速
                                   CDN加速


         RTMP流           FLV切片文件
客户端              直播服务器             Web服务器
直播解决方案
优势:


  标准HTTP协议


  支持动态码流


  支持回看


  可支持P2P加速
播放器设计
核心播放功能


自定义外观


JavaScript接口


支持插件:


广告、分享、字幕
播放器设计
<script src="http://ovp/bootstrap.js"></script>
<script>
  createPlayer({"playerId":"12345", "videoId":"12300"});
</script>

GET /bootstrap.js
GET /bootstrap.swf
GET /player?id=12345

<player id="12345" url="/p-v1.2.swf">
  <settings>
    <bgColor>#000000</bgColor>
    <autoPlay>false</autoPlay>
    <logoOverlay>/company-logo.png</logoOverlay>
  </settings>
  <plugins>
    <plugin id="ad">...</plugin>
    <plugin id="subtitle">...</plugin>
  </plugins>
</player>
API接口

传统视频平台          OVP视频平台



        播放器     Web管理   播放器

Web管理   Web接口      API接口

   后台系统            后台系统
API接口


Web管理    播放器         App     3rd-part


              API接口

 Transcode    Livecast     Storage

 Messaging    Monitor      Database
API接口

Flex界面+API调用
API接口
便于自动化测试


便于故障调试


便于性能优化


便于修改UI
API设计

√   HTTP JSON

    简洁,高效

    Web Services

      杂,低效
Java接口设计
Spring 3.0              Servlet Container
                 ApiServlet
ApiServlet
                         Spring Container
ServletToBeanProxy        ApiServlet
                             ApiFacade1
                             ApiFacade2
                             ApiFacade3
Java接口设计
@Component
class ApiServlet extends HttpServlet {

    @Autowired ApiFacade[] facades;

    Map<String, ApiInvocation> mapping = scan();

    void service(HttpServletRequest req,HttpServletResponse resp) {
        securityCheck(req.getHeader("Authorization"));
        String method = fromUrl(req);
        Object[] args = convertArgs(req);
        Object result = mapping.get(method).invoke(args);
        String jsonResult = dumpJson(result);
        writeResult(resp, jsonResult);
    }
}
Java接口设计
@Component
class VideoApiFacade
  implements ApiFacade {

    @ApiGetMethod                       GET /getVideo?videoId=12345
    public Video getVideo(              &type=flv
      @ApiParam("videoId") String id,   Authorization: OAuth2 XXXXX
      @ApiParam("type") String type
    ) {
      return findVideo(id);             POST /updateVideo
    }                                   Authorization: OAuth2 XXXXX

    @ApiPostMethod                      video=%7B%22id%22%3A12345%2C
    public void updateVideo(            %22title%22%3A%22ABC%22%2C
      @ApiParam("video") Video video    %22desc%22%3A%22description
    ) {                                 %22%7D
      doUpdate(video);
    }                                   video={"id":12345,"title":"A
}                                       BC","desc":"description"}
缓存策略
Public/Private API

Redis                         field1   value1


Key = method/args[0]   key1   field2   value2


                              field3   value3
Field = args[1:]
                               ...      ...
缓存策略
               统一的缓存入口
@Component
class ApiServlet {

    Object callApi(String method, Object... args) {
        key = method + args[0];
        field = left(args);
        Object result = fromRedis(key, field);
        if (result==null) {
            result = invoke(method, args);
            setRedis(key, field, result);
        }
        return result;
    }
}
缓存策略
@Component                              /getVideo?videoId=123&type=flv
class VideoApiFacade                    key: getVideo/123
  implements ApiFacade {                field: flv

    @ApiGetMethod
    public Video getVideo(              /getVideo?videoId=123&type=ios
      @ApiParam("videoId") String id,   key: getVideo/123
      @ApiParam("type") String type     field: ios
    ) {
      return find(videoId, type);
    }                                                    "flv"     value1
    void clear(String videoId) {
      deleteFromRedis(                  "getVideo/123"   "ios"    value2
        "getVideo/" + videoId);
    }
                                                         "mp4"    value3
}
                                                          ...       ...
缓存策略
分布式Redis缓存

客户端路由
SDK接口
代码生成:Java SDK, C# SDK, Flash SDK


动态接口:Python SDK, Ruby SDK, PHP SDK


   client = APIClient()
   client.getVideo(videoId="123", type="ios")


   def http_curl(url, **params): pass

   class APIClient(object):

       def __getattr__(self, attr):
           return functools.partial(http_curl, 
               url="http://ovp/%s" % attr)
部署方式
Nginx + Jetty

Nginx:高效的Web服务器

Jetty:轻量级Java Web服务器


                        Nginx



    Jetty       Jetty   Jetty   Jetty   ...
部署方式
SVN + Maven + CI

   SVN:版本控制

   Maven:包依赖管理和编译

   Hudson:CI服务器
Web测试接口
经验和问题
Maven管理   杂


本地运行调试困难


Hudson编译时间长

迭代周期长
动态语言优势
保留参数信息


无需编译


部署简单(打包−   制−解压)


在线调试



         迭代周期快!
Python接口
# video_api.py

@jsonrpc('get')
def getVideo(videoId, type='flv'):
    '''
    >>> _init_test()
    >>> r = getVideo('1234', 'flv')
    >>> r.title
    'ABC'
    '''
    return findVideo(videoId, type)

@jsonrpc('post')
def updateVideo(video):
    update(video)

if __name__=='__main__':
    import doctest
    doctest.testmod()
Python接口

def jsonrpc(method):
    def _decorator(func):
        @functools.wraps(func)
        def _wrapper(*args, **kw):
            args_info = getargsinfo(func)
            realargs = convertargs(ctx.request, args_info)
            ret = func(*realargs)
            return json.dumps(ret)
        return _wrapper
    return _decorator
Python接口


# video_api.py

@jsonrpc('get')
@cache(3600)
def getVideo(videoId, type='flv'):
    pass
Python环境
web.py

simplejson

fabric
部署方式
Nginx + WSGI
未来方向
xen virtualization / gluster

IaaS + SaaS + CDN
Thank You!

      @廖雪峰
 www.liaoxuefeng.com

Weitere ähnliche Inhalte

Was ist angesagt?

Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)FLASH开发者交流会
 
JCConf2015: groovy to gradle
 JCConf2015: groovy to gradle JCConf2015: groovy to gradle
JCConf2015: groovy to gradleChing Yi Chan
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Bo-Yi Wu
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introductionotakustay
 
Web development with zend framework
Web development with zend frameworkWeb development with zend framework
Web development with zend frameworkthinkinlamp
 
Maintainable PHP Source Code
Maintainable PHP Source CodeMaintainable PHP Source Code
Maintainable PHP Source CodeBo-Yi Wu
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)振揚 陳
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學Shengyou Fan
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIChu-Siang Lai
 
Using armeria to write your RPC
Using armeria to write your RPCUsing armeria to write your RPC
Using armeria to write your RPCkoji lin
 
PHPUnit 入門介紹
PHPUnit 入門介紹PHPUnit 入門介紹
PHPUnit 入門介紹Jace Ju
 
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化Mu Chun Wang
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享Chong-Kuan Chen
 

Was ist angesagt? (14)

Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)
 
JCConf2015: groovy to gradle
 JCConf2015: groovy to gradle JCConf2015: groovy to gradle
JCConf2015: groovy to gradle
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introduction
 
Web development with zend framework
Web development with zend frameworkWeb development with zend framework
Web development with zend framework
 
Maintainable PHP Source Code
Maintainable PHP Source CodeMaintainable PHP Source Code
Maintainable PHP Source Code
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CI
 
Using armeria to write your RPC
Using armeria to write your RPCUsing armeria to write your RPC
Using armeria to write your RPC
 
PHPUnit 入門介紹
PHPUnit 入門介紹PHPUnit 入門介紹
PHPUnit 入門介紹
 
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
 

Ähnlich wie 廖雪峰 Saa s ovp

高性能远程调用解决方案
高性能远程调用解决方案高性能远程调用解决方案
高性能远程调用解决方案Ady Liu
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统Frank Xu
 
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geekJohnson Gau
 
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式Shengyou Fan
 
Erlang游戏开发
Erlang游戏开发Erlang游戏开发
Erlang游戏开发litaocheng
 
Open Api&Sip
Open Api&SipOpen Api&Sip
Open Api&Sipcenwenchu
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 Renaun Erickson
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails serverMichael Chen
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
Script with engine
Script with engineScript with engine
Script with engineWebrebuild
 
基于 FRIDA 的全平台逆向分析
基于 FRIDA 的全平台逆向分析基于 FRIDA 的全平台逆向分析
基于 FRIDA 的全平台逆向分析CC
 
HTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 appHTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 appBen Lue
 
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7javatwo2011
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer TalkLarry Cai
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)FLASH开发者交流会
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.toleone
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用勇浩 赖
 

Ähnlich wie 廖雪峰 Saa s ovp (20)

高性能远程调用解决方案
高性能远程调用解决方案高性能远程调用解决方案
高性能远程调用解决方案
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
 
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek
 
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
 
Glider
GliderGlider
Glider
 
Erlang游戏开发
Erlang游戏开发Erlang游戏开发
Erlang游戏开发
 
Open Api&Sip
Open Api&SipOpen Api&Sip
Open Api&Sip
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
Berserk js
Berserk jsBerserk js
Berserk js
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
Script with engine
Script with engineScript with engine
Script with engine
 
基于 FRIDA 的全平台逆向分析
基于 FRIDA 的全平台逆向分析基于 FRIDA 的全平台逆向分析
基于 FRIDA 的全平台逆向分析
 
HTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 appHTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 app
 
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.t
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用
 

Mehr von drewz lin

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz lin
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrichdrewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equaldrewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansendrewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentationdrewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martindrewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usadrewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 

Mehr von drewz lin (20)

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 

廖雪峰 Saa s ovp