您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

facebook開發者文檔(即時通訊行業首個安全合規白皮書發布)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-12 04:11:38【】5人已围观

简介如何準確的向工程師傳達動效設計?引用篇最近站酷上看到的文章,覺得講得不錯,原文地址:如何準確的向工程師傳達動效設計?|UE|原創/自譯教程|TCWison隨著軟件與終端的發展,如今的用戶體驗設計中動效

如何準確的向工程師傳達動效設計?

引用篇最近站酷上看到的文章,覺得講得不錯,原文地址:如何準確的向工程師傳達動效設計?|UE|原創/自譯教程|TCWison

隨著軟件與終端的發展,如今的用戶體驗設計中動效的作用正變得越發重要,也有越來越多的設計師開始嘗試讓自己的作品“動”起來。但在實際工作中,相信大家常會有這樣的疑問:怎樣才能將自己精心設計的動態效果,準確的傳達給工程師,避免實現的偏差呢?下面我想根據自己的經驗,拋磚引玉,和大家聊一下這個話題。

試想一下,在一個沉靜的的夜晚,你正為一個界面的過渡動畫而苦思冥想,突然一道靈感之光穿越你的腦海,完美的方案浮現眼前。此刻你最想做的,恐怕不是翻閱開發文檔研究實現原理,“老子得立刻把它表現出來。”

沒錯,我們是設計師,設計師要做的是可視化。對于動效來說,憑空描述永遠是隔靴搔癢,將自己心中的設計最快速的可視化,是實現的第一步。

一、準確展示:視頻Demo

視頻Demo是個不錯的開始,一段可以反復播放并在大部分設備上均可觀看的視頻,是讓別人快速理解自己想法的最佳媒介。制作視頻Demo,本人最常用的工具是AfterEffects。AE對于動效的控制與表現能力,至今無人能出其右,是我心目中最佳的概念設計工具。

除視頻外,AE的另一個優勢是,它輸出的PNG序列幀素材可以直接應用到一些PC甚至移動端的軟件中,作為實現效果。

二、操作體驗:交互原型

視頻Demo的局限是無法交互,而很大一部分動效都是在用戶與界面交互時觸發的。這部分動效的啟動時機,與手勢的關系,僅靠視頻Demo就無法100%準確的傳達了。這時,如果能有一個可交互的原型,很多問題就會迎刃而解。

對于可交互的原型(Prototype),網上已經有很多文章在討論,制作工具也五花八門(Flash、AdobeEdge、QuartzComposer、Keynote、Framer、Pixate、Form...),我們該如何選擇呢?對于這個問題,我主要看兩個點:1、制作好的原型是否便于多人分享。2、是否可以直接輸出可用于開發的參數。

基于這兩點,我個人的第一個選擇是Flash。

由于Apple的原因,Flash如今的境況可算是江河日下。但作為一個動效原型工具,它卻有一些獨特的優勢。

優勢1:可以直接導入AE生成的序列幀素材。

對于我這種以AE作為動效設計起始的人來說,這點太重要了。它意味著無需任何重復勞動,只需要在Flash中添加一些基于AS3.0的交互代碼,就可以完成原型的制作,并保證自己最初的設計思路在原型階段不打折扣的實現。

優勢2:可以導出.apk或.ipa的安裝包,共享給任何有手機的人。

由于本人的工作經常需要異地溝通,原型的可傳遞性就是個很關鍵的需求了(總不能把電腦快遞過去給人家看吧...)。Flash的打包發布功能,這時就派上了用場。做好的原型通過AirforAndroid打包一個apk文件,郵件發過去安裝在對方手機上,輕松又愉快。

另外一些可關注的工具,還有Pixate和Form,它們都可以通過共享工程文件的方式遠程傳遞,還能通過官方App將原型投射在手機上實時預覽,缺點是只能做一些基礎的效果,創新一點兒的就搞不定了,不過他們都在不斷地迭代更新,尤其是后者,剛被Google收購,未來說不定會有快速的發展。

我個人的第二個工具選擇,是FramerStudio。當我把制作好的原型拿給工程師看的時候,經常被問到這樣一個問題:“能不能把源碼給我們看一下?”這時氣氛通常會比較尷尬,因為Flash也好Form也罷,它們制作的原型只能起到演示的作用,而無法直接生成對開發有幫助的代碼。此時,除了報班現學Android或iOS開發外,還有沒有別的辦法呢?答案是:“有!”FramerStudio給了我們一線曙光。

FramerStudio是一個純編程實現的原型制作工具,有很強的動效實現能力,它的語言是基于Javascript衍生出的Coffeescript。雖然語法與Android\iOS有不小的區別,但僅就動效這塊,很多邏輯是可以共通的。

當然,它的學習成本也會高一些,不過當你拿著一段Framer的源碼給工程師看的話,當中的一些動畫參數和實現邏輯,多少能給到他們些實際的幫助,所以付出和回報還是成正比的。關于運用Framer的流程,Twitter的設計師分享了他們的經驗,大家可以看下這篇文章:《Twitter視頻功能設計流程全程剖析》

另外,如果你專注于iOS平臺,也可以直接嘗試一下Origami,這是個由Facebook團隊開發的原型工具,通過鏈接節點式的操作,無需自己寫代碼,在它最新的更新中,已經支持導出可供iOS和Android使用的代碼,這篇文章做了介:《IntrocingOrigamiLive》

三、協助開發:參數文檔

有了視頻Demo,有了交互原型,相信工程師們已經理解你要做什么了,那他們是否就可以愉快的把動效實現了呢?答案是:不一定。一些簡單的動效,工程師或許可以憑經驗搞定。如果你的動效設計很復雜,涉及眾多的參數與速率變化,那僅憑你的描述與工程師肉眼的感覺,恐怕要出偏差。這時,就需要參數文檔的幫助了。

想要自己的設計能被精確的實現,就一定要對實現的原理有所了解。根據實現原理,把對應的參數精確的寫出來,這就是參數文檔。對于動效來說,基本參數無非這三類:

1、動畫的起始時間、持續時間(ration\offset)

2、變化的屬性(rotation\position\scale\alpha)

3、運動速率()

iOS與Android各自的程序語法不太相同,大家可以去官網翻看一下它們的開發者文檔,了解兩者在動效實現上大概的語法格式,然后對應著把這些參數標好,傳遞給工程師,他們就真正可以愉快的開發了。

當然,開發過程中少不了和工程師的不斷溝通(一些如像素位置、不同機型屏幕比例的細節,包括可能出現的誤差),換位思考,不能丟給他文檔或demo之后做甩手掌柜,那也是不負責任的表現。

總結:

簡單的說,要想準確傳達自己的設計可以分三步。

第一步:要快速可視化。

你可以選擇任何用的順手的工具,把自己的想法快速準確的呈現出來,就已經是成功的一半。

第二步:最大限度的還原使用場景。

如果是PC端,就在電腦上演示。如果是移動端,就在手機上演示。如果可操作,那最好做可交互的原型,當然,是在時間成本允許的條件下。

第三步:把設計參數化,盡可能減少讓工程師憑感覺開發的情況。

相信我,如果你不希望工程師憑感覺調UI顏色,那么動效同理。一份精確的文檔,是你專業性的體現。

最后我想提醒一下,本文提到了很多工具,而工具似乎有能讓人著迷的魔力。所以請注意了,千萬不要在追求工具的過程中迷失了設計的本源。電影《夜行者》里有一句臺詞:“想贏彩票的話,你得先賺夠買彩票的錢。”同樣,我們是設計師,想要工程師實現出酷炫的動效,你得先把它酷炫的設計出來。抓住一切機會提升自己的設計能力吧!那才是你最寶貴的東西。

從網站抓取數據的3種最佳方法

1.使用網站API

許多大型社交媒體網站,例如Facebook,Twitter,Instagram,StackOverflow,都提供API供用戶訪問其數據。有時,您可以選擇官方API來獲取結構化數據。如下面的Facebook Graph API所示,您需要選擇進行查詢的字段,然后訂購數據,執行URL查找,發出請求等。

2.建立自己的搜尋器

但是,并非所有網站都為用戶提供API。某些網站由于技術限制或其他原因拒絕提供任何公共API。有人可能會提出RSS提要,但是由于限制了它們的使用,因此我不會對此提出建議或發表評論。在這種情況下,我想討論的是我們可以自行構建爬蟲來處理這種情況。

3.利用現成的爬蟲工具

但是,通過編程自行爬網網站可能很耗時。對于沒有任何編碼技能的人來說,這將是一項艱巨的任務。因此,我想介紹一些搜尋器工具。

Octoparse是一個功能強大的基于Visual Windows的Web數據搜尋器。用戶使用其簡單友好的用戶界面即可輕松掌握此工具。要使用它,您需要在本地桌面上下載此應用程序。

買粉絲://Import.io也稱為Web搜尋器,涵蓋所有不同級別的搜尋需求。它提供了一個魔術工具,可以將站點轉換為表格,而無需任何培訓。如果需要抓取更復雜的網站,建議用戶下載其桌面應用程序。構建完API后,它們會提供許多簡單的集成選項,例如Google Sheets,買粉絲://Plot.ly,Excel以及GET和POST請求。當您認為所有這些都帶有終身免費價格標簽和強大的支持團隊時,買粉絲://import.io無疑是那些尋求結構化數據的人的首要選擇。它們還為尋求更大規模或更復雜數據提取的公司提供了企業級付費選項。

PHP可以開發電商網站嗎?

PHP的特性和優點:

1、快捷性,程序開發快,運行快,前期保護費用低,完美支持移動APP開發。PHP已經是國際大部門Web項手段首選,以至眾多公司從其它語言(如ASP,JAVA)轉到了PHP,不僅僅國內的騰訊、百度、淘寶、京東、點評網、糯米網,甚至國外的大型網站例如facebook、youtobe、google也轉到用PHP來開發。買粉絲官網宣布的開發者文檔就是PHP版。今朝全球5000萬互聯網網站中,有60%以上使用著PHP;PHP是全球五大最受歡迎的編程語言之一,AlexaTOP500中國網站排名,有394家使用了PHP,比例為78.8%。

2、跨平臺性強,由于PHP是運行在服務器端的腳本,可以運行在UNIX、LINUX、WINDOWS、MacOS下。

3、運營高效性。相對java等,PHP消耗相當少的系統資源。由于PHP運行在相應的平臺解釋器上,消耗系統資源比較少,運行的環境簡單,所以效率就很高。

4、面向過程和面向對象并用。在PHP語言的使用中,可以分別使用面向過程和面向對象,而且可以將PHP面向過程和面向對象兩者一起混用,這是其他很多編程語言是做不到的。php已經廣泛應用于淘寶、Facebook等大型商業程序的開發當中。

5、PHP獨特的語法混合了C、Java、Perl以及PHP自創新的語法,兼容性強。

6、數據庫連接的廣泛性。PHP支持幾乎所有流行的數據庫以及操作系統,如MySQL、ODBC、Oracle、AdabasD、S等,PHP是利用編譯的不同函數與這些數據庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。。

7、PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比:PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。

輸入一個買粉絲的時候,后臺到底發生了一件件什么樣的事_HTML/X買粉絲_網頁制作

作為一個軟件開發者,你一定會對網絡應用如何工作有一個完整的層次化的認知,同樣這里也包括這些應用所用到的技術:像瀏覽器,HTTP,HTML,網絡服務器,需求處理等等。

本文將更深入的研究當你輸入一個買粉絲的時候,后臺到底發生了一件件什么樣的事~

1. 首先嘛,你得在瀏覽器里輸入要買粉絲:

2. 瀏覽器查找域名的IP地址

導航的第一步是通過訪問的域名找出其IP地址。DNS查找過程如下:

瀏覽器緩存 – 瀏覽器會緩存DNS記錄一段時間。 有趣的是,操作系統沒有告訴瀏覽器儲存DNS記錄的時間,這樣不同瀏覽器會儲存個自固定的一個時間(2分鐘到30分鐘不等)。系統緩存 – 如果在瀏覽器緩存里沒有找到需要的記錄,瀏覽器會做一個系統調用(windows里是gethostbyname)。這樣便可獲得系統緩存中的記錄。路由器緩存 – 接著,前面的查詢請求發向路由器,它一般會有自己的DNS緩存。ISP DNS 緩存 – 接下來要check的就是ISP緩存DNS的服務器。在這一般都能找到相應的緩存記錄。遞歸搜索 – 你的ISP的DNS服務器從跟域名服務器開始進行遞歸搜索,從.買粉絲頂級域名服務器到Facebook的域名服務器。一般DNS服務器的緩存中會有.買粉絲域名服務器中的域名,所以到頂級服務器的匹配過程不是那么必要了。

DNS遞歸查找如下圖所示:

DNS有一點令人擔憂,這就是像wikipedia.org 或者 facebook.買粉絲這樣的整個域名看上去只是對應一個單獨的IP地址。還好,有幾種方法可以消除這個瓶頸:

循環 DNS 是DNS查找時返回多個IP時的解決方案。舉例來說,Facebook.買粉絲實際上就對應了四個IP地址。負載平衡器是以一個特定IP地址進行偵聽并將網絡請求轉發到集群服務器上的硬件設備。 一些大型的站點一般都會使用這種昂貴的高性能負載平衡器。地理DNS 根據用戶所處的地理位置,通過把域名映射到多個不同的IP地址提高可擴展性。這樣不同的服務器不能夠更新同步狀態,但映射靜態內容的話非常好。Anycast 是一個IP地址映射多個物理主機的路由技術。 美中不足,Anycast與TCP協議適應的不是很好,所以很少應用在那些方案中。

大多數DNS服務器使用Anycast來獲得高效低延遲的DNS查找。

3. 瀏覽器給web服務器發送一個HTTP請求

因為像Facebook主頁這樣的動態頁面,打開后在瀏覽器緩存中很快甚至馬上就會過期,毫無疑問他們不能從中讀取。

所以,瀏覽器將把一下請求發送到Facebook所在的服務器:

GET 買粉絲://facebook.買粉絲/ HTTP/1.1 Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...] User-Agent: Mozilla/4.0 (買粉絲patible; MSIE 8.0; Windows NT 6.1; WOW64; [...] Accept-En買粉絲ding: gzip, deflate Connection: Keep-Alive Host: facebook.買粉絲 Cookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...]

GET 這個請求定義了要讀取的URL: “買粉絲://facebook.買粉絲/”。 瀏覽器自身定義 (User-Agent 頭), 和它希望接受什么類型的相應 (Accept andAccept-En買粉絲ding 頭). Connection頭要求服務器為了后邊的請求不要關閉TCP連接。

請求中也包含瀏覽器存儲的該域名的買粉絲okies。可能你已經知道,在不同頁面請求當中,買粉絲okies是與跟蹤一個網站狀態相匹配的鍵值。這樣買粉絲okies會存儲登錄用戶名,服務器分配的密碼和一些用戶設置等。Cookies會以文本文檔形式存儲在客戶機里,每次請求時發送給服務器。

用來看原始HTTP請求及其相應的工具很多。作者比較喜歡使用fiddler,當然也有像FireBug這樣其他的工具。這些軟件在網站優化時會幫上很大忙。

除了獲取請求,還有一種是發送請求,它常在提交表單用到。發送請求通過URL傳遞其參數(e.g.: 買粉絲://robozzle.買粉絲/puzzle.aspx?id=85)。發送請求在請求正文頭之后發送其參數。像“買粉絲://facebook.買粉絲/”中的斜杠是至關重要的。這種情況下,瀏覽器能安全的添加斜杠。而像“買粉絲: //example.買粉絲/folderOrFile”這樣的地址,因為瀏覽器不清楚folderOrFile到底是文件夾還是文件,所以不能自動添加 斜杠。這時,瀏覽器就不加斜杠直接訪問地址,服務器會響應一個重定向,結果造成一次不必要的握手。

4. facebook服務的永久重定向響應

圖中所示為Facebook服務器發回給瀏覽器的響應:

HTTP/1.1 301 Moved Permanently Cache-Control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Sat, 01 Jan 2000 00:00:00 GMT Location: 買粉絲://買粉絲.facebook.買粉絲/ P3P: CP="DSP LAW" Pragma: no-cache Set-Cookie: made_write_買粉絲nn=deleted; expires=Thu, 12-Feb-2009 05:09:50 GMT; path=/; domain=.facebook.買粉絲; 買粉絲only Content-Type: text/買粉絲; charset=utf-8 X-Cnection: close Date: Fri, 12 Feb 2010 05:09:51 GMT Content-Length: 0

服務器給瀏覽器響應一個301永久重定向響應,這樣瀏覽器就會訪問“買粉絲://買粉絲.facebook.買粉絲/” 而非“買粉絲://facebook.買粉絲/”。

為什么服務器一定要重定向而不是直接發會用戶想看的網頁內容呢?這個問題有好多有意思的答案。

其中一個原因跟搜索引擎排名有 關。你看,如果一個頁面有兩個地址,就像買粉絲://買粉絲.igoro.買粉絲/ 和買粉絲://igoro.買粉絲/,搜索引擎會認為它們是兩個網站,結果造成每一個的搜索鏈接都減少從而降低排名。而搜索引擎知道301永久重定向是 什么意思,這樣就會把訪問帶買粉絲的和不帶買粉絲的地址歸到同一個網站排名下。

還有一個是用不同的地址會造成緩存友好性變差。當一個頁面有好幾個名字時,它可能會在緩存里出現好幾次。

5. 瀏覽器跟蹤重定向地址

現在,瀏覽器知道了“買粉絲://買粉絲.facebook.買粉絲/”才是要訪問的正確地址,所以它會發送另一個獲取請求:

GET 買粉絲://買粉絲.facebook.買粉絲/ HTTP/1.1 Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...] Accept-Language: en-US User-Agent: Mozilla/4.0 (買粉絲patible; MSIE 8.0; Windows NT 6.1; WOW64; [...] Accept-En買粉絲ding: gzip, deflate Connection: Keep-Alive Cookie: lsd=XW[...]; c_user=21[...]; x-referer=[...] Host: 買粉絲.facebook.買粉絲

頭信息以之前請求中的意義相同。

6. 服務器“處理”請求

服務器接收到獲取請求,然后處理并返回一個響應。

這表面上看起來是一個順向的任務,但其實這中間發生了很多有意思的東西- 就像作者博客這樣簡單的網站,何況像facebook那樣訪問量大的網站呢!

Web 服務器軟件web服務器軟件(像IIS和阿帕奇)接收到HTTP請求,然后確定執行什么請求處理來處理它。請求處理就是一個能夠讀懂請求并且能生成HTML來進行響應的程序(像ASP.NET,PHP,RUBY...)。

舉 個最簡單的例子,需求處理可以以映射網站地址結構的文件層次存儲。像買粉絲://example.買粉絲/folder1/page1.aspx這個地 址會映射/買粉絲docs/folder1/page1.aspx這個文件。web服務器軟件可以設置成為地址人工的對應請求處理,這樣 page1.aspx的發布地址就可以是買粉絲://example.買粉絲/folder1/page1。

請求處理請求處理閱讀請求及它的參數和買粉絲okies。它會讀取也可能更新一些數據,并講數據存儲在服務器上。然后,需求處理會生成一個HTML響應。

所 有動態網站都面臨一個有意思的難點 -如何存儲數據。小網站一半都會有一個SQL數據庫來存儲數據,存儲大量數據和/或訪問量大的網站不得不找一些辦法把數據庫分配到多臺機器上。解決方案 有:sharding (基于主鍵值講數據表分散到多個數據庫中),復制,利用弱語義一致性的簡化數據庫。

委 托工作給批處理是一個廉價保持數據更新的技術。舉例來講,Fackbook得及時更新新聞feed,但數據支持下的“你可能認識的人”功能只需要每晚更新 (作者猜測是這樣的,改功能如何完善不得而知)。批處理作業更新會導致一些不太重要的數據陳舊,但能使數據更新耕作更快更簡潔。

7. 服務器發回一個HTML響應

圖中為服務器生成并返回的響應:

HTTP/1.1 200 OK Cache-Control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Sat, 01 Jan 2000 00:00:00 GMT P3P: CP="DSP LAW" Pragma: no-cache Content-En買粉絲ding: gzip Content-Type: text/買粉絲; charset=utf-8 X-Cnection: close Transfer-En買粉絲ding: chunked Date: Fri, 12 Feb 2010 09:05:55 GMT2b3Tn@[...]

整個響應大小為35kB,其中大部分在整理后以blob類型傳輸。

內容編碼頭告訴瀏覽器整個響應體用gzip算法進行壓縮。解壓blob塊后,你可以看到如下期望的HTML:

"買粉絲://買粉絲.w3.org/TR/x買粉絲1/DTD/x買粉絲1-strict.dtd">...

關于壓縮,頭信息說明了是否緩存這個頁面,如果緩存的話如何去做,有什么買粉絲okies要去設置(前面這個響應里沒有這點)和隱私信息等等。

請注意報頭中把Content-type設置為“text/買粉絲”。報頭讓瀏覽器將該響應內容以HTML形式呈現,而不是以文件形式下載它。瀏覽器會根據報頭信息決定如何解釋該響應,不過同時也會考慮像URL擴展內容等其他因素。

8. 瀏覽器開始顯示HTML

在瀏覽器沒有完整接受全部HTML文檔時,它就已經開始顯示這個頁面了:

9. 瀏覽器發送獲取嵌入在HTML中的對象

在瀏覽器顯示HTML時,它會注意到需要獲取其他地址內容的標簽。這時,瀏覽器會發送一個獲取請求來重新獲得這些文件。

下面是幾個我們訪問facebook.買粉絲時需要重獲取的幾個URL:

圖片買粉絲://static.ak.fbcdn.買粉絲/rsrc.php/z12E0/hash/8q2anwu7.gif買粉絲://static.ak.fbcdn.買粉絲/rsrc.php/zBS5C/hash/7hwy7at6.gif…CSS 式樣表買粉絲://static.ak.fbcdn.買粉絲/rsrc.php/z448Z/hash/2plh8s4n.css買粉絲://static.ak.fbcdn.買粉絲/rsrc.php/zANE1/hash/cvtutcee.css…JavaScript 文件買粉絲://static.ak.fbcdn.買粉絲/rsrc.php/zEMOA/hash/c8yzb6ub.js買粉絲://static.ak.fbcdn.買粉絲/rsrc.php/z6R9L/hash/cq2lgbs8.js…

這些地址都要經歷一個和HTML讀取類似的過程。所以瀏覽器會在DNS中查找這些域名,發送請求,重定向等等...

但 不像動態頁面那樣,靜態文件會允許瀏覽器對其進行緩存。有的文件可能會不需要與服務器通訊,而從緩存中直接讀取。服務器的響應中包含了靜態文件保存的期限 信息,所以瀏覽器知道要把它們緩存多長時間。還有,每個響應都可能包含像版本號一樣工作的ETag頭(被請求變量的實體值),如果瀏覽器觀察到文件的版本 ETag信息已經存在,就馬上停止這個文件的傳輸。

試著猜猜看“fbcdn.買粉絲”在地址中代表什么?聰明的答案是"Facebook內容分發網絡"。Facebook利用內容分發網絡(CDN)分發像圖片,CSS表和JavaScript文件這些靜態文件。所以,這些文件會在全球很多CDN的數據中心中留下備份。

靜態內容往往代表站點的帶寬大小,也能通過CDN輕松的復制。通常網站會使用第三方的CDN。例如,Facebook的靜態文件由最大的CDN提供商Akamai來托管。

舉例來講,當你試著ping static.ak.fbcdn.買粉絲的時候,可能會從某個akamai.買粉絲服務器上獲得響應。有意思的是,當你同樣再ping一次的時候,響應的服務器可能就不一樣,這說明幕后的負載平衡開始起作用了。

10. 瀏覽器發送異步(AJAX)請求

在Web 2.0偉大精神的指引下,頁面顯示完成后客戶端仍與服務器端保持著聯系。

以 Facebook聊天功能為例,它會持續與服務器保持聯系來及時更新你那些亮亮灰灰的好友狀態。為了更新這些頭像亮著的好友狀態,在瀏覽器中執行的 JavaScript代碼會給服務器發送異步請求。這個異步請求發送給特定的地址,它是一個按照程式構造的獲取或發送請求。還是在Facebook這個例 子中,客戶端發送給買粉絲://買粉絲.facebook.買粉絲/ajax/chat/buddy_list.php一個發布請求來獲取你好友里哪個 在線的狀態信息。

提起這個模式,就必須要講講"AJAX"-- “異步JavaScript 和 XML”,雖然服務器為什么用XML格式來進行響應也沒有個一清二白的原因。再舉個例子吧,對于異步請求,Facebook會返回一些JavaScript的代碼片段。

除了其他,fiddler這個工具能夠讓你看到瀏覽器發送的異步請求。事實上,你不僅可以被動的做為這些請求的看客,還能主動出擊修改和重新發送它們。AJAX請求這么容易被蒙,可著實讓那些計分的在線游戲開發者們郁悶的了。(當然,可別那樣騙人家~)

Facebook聊天功能提供了關于AJAX一個有意思的問題案例:把數據從服務器端推送到客戶端。因為HTTP是一個請求-響應協議,所以聊天服務器不能把新消息發給客戶。取而代之的是客戶端不得不隔幾秒就輪詢下服務器端看自己有沒有新消息。

這些情況發生時長輪詢是個減輕服務器負載挺有趣的技術。如果當被輪詢時服務器沒有新消息,它就不理這個客戶端。而當尚未超時的情況下收到了該客戶的新消息,服務器就會找到未完成的請求,把新消息做為響應返回給客戶端。

即時通訊行業首個安全合規白皮書發布

前言

隨著移動互聯網和5G通信新技術的浪潮席卷全球,傳統的通信方式已經發生了翻天覆地的變化。人們已經習慣了通過即時通訊軟件和網絡交流平臺分享自己生活的方方面面,隨著人們越來越公開自己的生活,人們也開始關注隱私和安全等問題。

隱私作為人們不愿為他人知曉的私密空間、私密活動和私密信息,歷來被互聯網用戶所關注。尤其是在即時通訊服務的使用過程中,用戶可以輕易將自己的隱私傳輸至互聯網上,這使得用戶在享受便捷服務的同時,更容易因隱私泄露而影響生活安寧。近些年來各類隱私泄露事件更是讓人們在享受便捷的互聯網服務時,對網絡服務提供者的隱私保護能力持懷疑態度。甚至在某種程度上,隱私保護逐漸成為用戶選擇網絡服務時考慮的重要因素。為了保護用戶的隱私,世界各地都相繼出臺了隱私保護相關的法律法規,使得企業的隱私保護合規工作更加具有挑戰性。

作為全球互聯網消息云的開創者和引領者,數據和用戶隱私安全是環信最關切的問題。環信始終將數據和用戶隱私安全作為首要安全原則,并將其作為理念融入安全能力建設當中,2021年環信行業首家通過了史上最嚴格的數據保護法案“GDPR”的相關安全合規標準。

為幫助開發者及用戶感知和理解環信在即時通訊服務上的努力,了解環信服務的安全屬性,CSDN聯合環信特發布即時通訊行業首個《安全合規白皮書》。該白皮書全面分析了安全合規的趨勢及國內外監管重點,同時給出環信在即時通信領域安全合規開發的經驗及建議,還列舉了環信云服務的相關安全和合規工作,希望能夠為業界提供了全面、詳實的安全能力建設參考。

目錄

1.安全合規的趨勢

1.1隱私監管趨緊

1.2APP/SDK趨嚴

1.3安全合規的基本框架

2.國內外的監管重點

2.1國內App上架-信息采集

2.2國內App上架-符合安全規定

2.3海外的關注-?戶權利

2.4共同關注點-數據跨境

3.如何評估和滿?安全合規要求

3.1如何評估安全合規的要求

3.2產品架構維度

3.3數據處理流程的維度

4.安全合規開發經驗及建議

4.1安全合規能?建設需要做什么

4.2?前安全合規的能?

4.3開發建議-即時通訊領域

5.環信安全合規、隱私保護及相關認證

5.1環信安全合規和隱私保護

5.2安全標準和認證(GDPR)

6.環信即時通訊PaaS服務的安全

6.1數據中心計算資源安全

6.2SDK安全

6.3RESTfulAPI安全

7.數據安全

7.1數據安全政策

7.2數據采集

7.3數據脫敏

7.4數據保護和加密傳輸

7.5數據使用和存儲

7.6用戶的數據權利

8.安全運營

8.1安全開發生命周期管理SDL

8.2反入侵和安全監控

8.3安全應急響應機制

8.4安全合作

9.APP開發者接入環信SDK的合規要求

9.1隱私政策內容合規

9.2隱私政策展示形式合規

10.結語

引言

在監管趨緊的形式下,即時通訊場景會遇到很多安全合規領域的挑戰,如何滿足這些安全合規的要求,如何保護用戶的隱私安全,是一件非常有挑戰的事情。

一、安全合規的趨勢

1.1、隱私監管趨緊

最近四五年來,安全合規的趨勢變得越來越嚴格,各個國家都有比較重磅的安全合規的相關法規出臺,比如美國加州的《消費者隱私法案》《兒童在線隱私保護法》、保險醫療領域的HIPPA,以及歐盟推出的比較有代表性的《通用數據保護條例》。國內去年也出臺了《個人信息保護法》

《數據安全法》,加上之前發布的《網絡安全法》,對于安全合規領域的覆蓋逐漸比較完善。

1.2、App/SDK趨嚴

圖1所示為國內主要的有關法規和內容,而且這個趨勢也是越來越嚴格,比如工信部發布的各種應用下架的新聞或者公告,都涉及了個人數據隱私相關的內容。

1.3、安全合規的基本框架

安全合規的基本框架可以總結成兩個方向,一個是用戶知情同意,另一個就是安全保障義務。我們以《通用數據保護條例》(GDPR)為例,它是一個法規條文,內容包括各種監管措施、懲罰措施,還規定了應保障的用戶權利,后續章節將介紹一些具體的用戶權利說明。

二、國內外的監管重點

關于國內外監管的重點,從國內這幾年的角度來看,主要包括以下幾個方面:

2.1、國內App上架——信息采集

如圖2所示,用戶信息的采集方面正受到越來越多的重視,國家部委出臺了《常見類型移動互聯網應用程序必要個人信息的范圍規定》,指出了二三十個場景下能夠采集的必要的個人信息。

比如地圖導航類,它的基本功能是定位和導航,必要的個人信息為位置信息、出發地和到達地。開發者在開發應用的時候首要確認相關信息,如果收集了其余非必要數據App就無法上架。

再比如網絡社區類應用,它的基本功能是博客、論壇等,這些個人信息跟即時通訊類的必要信息比較接近,諸如用戶的移動電話號碼和賬號聯系人等信息。網約車類型中也規定了電話號碼,包括出發地、到達地、支付時間、支付信息等。為什么即時通訊類需要移動電話號碼呢?一般認為是只需要賬號就可以了?接下來的篇幅就解釋了這個問題。

2.2、國內App上架——符合安全規定

除了可以采集的必要信息的約束之外,我國還有很多特定的相關不同行業或領域的約束。

另外,其實這還涉及用戶輿論的問題,需要針對這個問題建立投訴舉報的機制,公布投訴舉報的聯系方式和處理情況,對于這些用戶的昵稱、信息發布、轉發評論等,要有相關的記錄保存措施,通過一定的保存機制來支持追查這些信息。這樣一方面約束了必要的個人信息的采集;另一方面在不同的領域也補充了額外的要求,比如金融或者醫療領域就有更高級別的相關要求。

根據工信部數據顯示,近期違規下架應用累計為3000款左右,涉及的問題大部分是違規收集個人信息,少量是強制或者索取權限相關的問題,國內的應用、網站可能涉及的問題主要集中在這幾個方面。

2.3、海外的關注——用戶權利

如果目標客戶是在海外,那么會發現海外的側重點稍有不同。除了常見的這些安全約束之外,其更關注用戶的權利。

舉幾個例子,比如用戶的知情權、信息獲取權、修改權和被遺忘權。知情權就是明確地告知用戶要收集哪些信息、信息用來做什么以及保存多久;信息獲取權就是用戶必須能夠導出自己的數據;修改權就是用戶可以對個人信息進行修改;被遺忘權就是用戶有權利注銷和刪除自己的數據。Facebook等海外的大型平臺都支持注銷賬號、導出個人數據等功能,這些是海外比較重視的方面。

圖3案例所示,英國的數據保護監管機構向加拿大的一家數據分析公司發出通知,要求其刪除

所有跟英國公民相關的個人數據,如果不履行義務,將面臨著2000萬歐元或者上一年全球總

營業額4%的罰款。這里的2000萬歐元和4%的罰款就是《通用數據保護條例》中所做的規定,從中不難看出這個措施是非常嚴格的。

2.4、共同關注點——數據跨境

國內和國外還有一個共同的關注點,就是熱點數據跨境,簡單來說就是個人信息和重要的數據應當在境內,這里的在境內應該就是說,比如中國公民的信息和重要的數據不能被隨意地存儲到境外的服務器上,歐盟地區的數據也不能被隨意地存儲在歐盟以外。其他的地區比如東南亞或者印度,也有當地的相關法律法規來約束。

如果確實需要向境外提供數據,我國的要求是要通過評估辦法進行慎重的評估。歐盟則是要求他們認為已經采取足夠的安全保護措施的地區可以跨境轉移數據,但至少現在為止中國還不在這個名單上,所以歐盟的數據也不能隨意存儲在中國境內的服務器上。

三、如何評估和滿足安全合規要求

了解了安全合規的趨勢和相應的重點之后,我們如何評估和滿足安全合規的要求呢?首先回溯前面介紹的安全合規的框架。

用戶知情同意包括充分告知和權利保障。充分告知就是提供用戶隱私協議,權利保障就是用戶可以拒絕、可以刪除,而且收集的數據要符合最小化原則(最小必要)。

安全保障義務比較復雜。首先,從風險評估、公司內部的制度建設到安全開發流程中都會涉及這個問題,比如產品從需求階段就要有安全方面的專家確認是否涉及用戶數據、用戶數據怎么傳輸、用戶數據怎么來保存、是否是必要的等等,因此從產品需求階段到方案設計階段,到最后上線階段都要有必要的安全評估。

其次是技術保障,這里的技術保障指的是采集過程當中的傳輸、存儲都應當采取足夠的技術保障,換算成技術角度就是說,傳輸過程中要進行傳輸的加密,存儲過程中要進行存儲的加密。法律法規不會規定具體的某個安全措施,只是要求采取必要的技術措施保障用戶數據的安全。

所以從技術角度側理解,要采取業內比較標準的或者比較高標準的安全措施,比如買粉絲s默認是使用其他的傳輸協議,比如TCP、UDP等也應當符合業內的安全標準。

當然,安全保障還少不了審計和監管,就是說要有一定的安全開發流程或者安全制度,滿足監管機構的監管要求。

3.1、如何評估安全合規的要求

那么,如何評估安全合規的要求呢?這要看我們具體的涉及的業務,不同領域的要求是不一樣的。諸如金融、醫療等領域的要求會更加嚴格。在某些醫療領域,對于醫療用戶(患者)的數據或者處理要記錄至少5年以上,這是該領域的一個特殊要求。另外,針對不同區域用戶的要求也不一樣,比如剛才提到的東南亞,新加坡就有自己的特殊規定,其他地區也有相關的特殊要求。

客戶的行業之間也有不同的安全要求,重要的企業或者事業單位,對于數據庫有時會有一些特殊的要求,比如要求必須是國內的數據庫,這就是不同的行業或者不同的客戶可能面臨的特殊要求。還有一個重要的因素就是要評估依賴的

節,我們將系統性地介紹各層中的技術及運營環節的安全風險控制措施。

6.1數據中心計算資源安全

環信即時通訊服務由國內外多個數據中心(IDC)以及頭部公有云供應商的云服務組成,以構建一個統一、高可用、高擴展、高效率、高安全的基礎資源環境。

6.1.1網絡隔離

對網絡進行合理的劃分,定義清晰用途,制定適配的訪問控制策略,是網絡安全的前提之一。環信基于IMPaaS承載功能和安全級別的不同,將網絡劃分出了核心、邊緣、IT等幾大安全區域。在不同的安全域之間,根據不同的業務訪問需求和安全級別,環信制定了不同的路由策略以及嚴格的安全訪問策略。

6.1.2防DDoS攻擊

分布式拒絕服務攻擊(DistributedDenialofService,DDoS)會對IM服務的系統和業務可用性產生重大影響,嚴重時可導致服務中斷或質量下降。為此,環信基于自身服務的特性,結合公有云能力,在核心服務上部署了DDoS防御方案。該方案能夠實時檢測并防御來自網絡層、傳輸的DDoS攻擊。防DDoS攻擊方案,能夠自動檢測、自動調度并觸發清洗功能,數秒內就可以完成攻擊、流量清洗動作,保證核心服務的可用性。

此外所有DDoS攻擊事件,都會通過郵件、短信、電話等方式,第一時間知會安全團隊,以便安全團隊持續關注和響應決策。

6.1.3主機、數據庫、中間件等計算資源安全

各類服務運行所依賴的資源,由操作系統或容器化為關聯的后臺程序、緩存、數據庫等中間件,合理地調度分配CPU、內存、磁盤等資源來滿足。環信結合自身基礎服務場景,在實際安全運營中,通過制定適配的安全基線、漏洞管理規范,并落地縱深威脅檢測機制,確保基礎運算負載資源的安全性。

6.1.3.1安全基線

環信制定了IDC和公有云的安全基線,涵蓋主機操作系統、容器、數據庫、存儲、Web服務等中間件,內容包括賬戶安全、身份認證、最小服務、最小授權、日志審計、時鐘同步等。并根據不同的用途,對操作系統或中間件進行不同程度的安全配置加固,確保新交付的運算負載資源滿足相關安全基線要求。對于運行中的負載資源,安全團隊會進行定期的配置巡檢,對比與安全基線的差異,輸出不符合項,通知到關聯的運維和業務技術團隊,并落實整改。

6.1.3.2漏洞管理

所有交付上線的運算負載資源,均來自統一管理的操作系統鏡像或中間件軟件包。對于交付使用中的資源,安全團隊會采集操作系統和中間件版本信息,然后發送到安全運營系統中分析,從而識別是否存在受漏洞影響的版本。對于公有云上的主機資源,環信會部署公有云的安全客戶端,實現對操作系統和中間件等軟件產品的實時漏洞檢測。另外,安全團隊通過部署業界知名商業漏洞掃描產品,定期對運算負載資源發起掃描巡檢,輸出漏洞掃描報告,并將信息采集到安全運營系統。

一旦發現存在漏洞版本匹配的組件,安全團隊會對漏洞的風險做綜合評估,提供應急處置措施和修復建議,并聯合運維及相關業務技術團隊落實漏洞修復、配置加固、鏡像更新,從而實現漏洞管理的閉環。

6.1.3.3計算資源中的安全運維

運維賬號安全

在日常運維中,環信制定并啟用了IAM(IdentityandAccessManagement,身份和訪問控制管理)機制,所有涉及運維內容的人員必須具有有效的身份和授權才可進行操作,運維賬號與員工身份一一對應,其默認啟用MFA(Multi-factorauthentication,多重要素驗證)。

操作系統賬號安全

對于系統賬號,環信制定了一系列安全制度和操作規范,例如,避免使用弱口令作為密碼,并要求定期更換,信息安全團隊也會通過定期的安全檢查。

運維操作審計

環信在日常運維過程中,會實時記錄歸檔各類操作,制定實時監控告警策略,并對風險操作及時處置。

6.2SDK安全

環信提供iOS、Android、Flutter、ReactNative、Windows、小程序、Web等平臺的SDK支持,以滿足開發者及用戶的各類實時音視頻互動接入需求。IMSDK不僅僅為開發者及用戶提供簡單、易用、統一、可信、安全的即時通訊開發套件,也竭盡全力為開發者及用戶提供合規、安全的配置選項,以提升開發者及用戶在實時音視頻互動場景和應用中合規監管和應對信源數據安全威脅的能力。

根據國家法律法規規定及監管機構執法要求,APP在使用第三方SDK時,必須在APP《隱私政策》中告知用戶,并在調用時序上做好延遲初始化配置,確保用戶同意APP《隱私政策》后SDK才可以被啟動,進行數據采集和服務。為了幫助開發者避免合規風險,環信推出隱私政策合規要求,包括隱私政策展示內容和展示形式合規。關于環信所收集的信息種類、用途、個人信息保護的規則及退出機制等,詳見環信官網(

6.2.1SDK的合規與安全保證

環信在為開發者提供SDK時,SDK的可信和安全是首要保證的內容之一。在評審SDK新增或迭代的功能時,會充分評估功能需求在合規隱私以及安全上的風險點,確保與環信合規和隱私政策的一致性。功能實現時,會在進行充分的質量保證(QA)測試時對代碼進行安全審計,在涉及引用或集成第三方SDK、庫文件時進行安全檢測,尤其是合規性確認,例如,是否存在惡意代碼或后門,是否遵守版權或使用協議。如果檢測出存在風險,SDK只有在修復并確認無風險后,才允許進入下一階段。在分發環節,會在官方渠道更新。

6.2.2對開發者及用戶的安全與合規支持

在SDK上,環信提供了設備端存儲內容加密,日志安全等安全配置選項,以協助開發者及用戶完善即時通訊數據安全及隱私合規。有需要的開發者及用戶,可以參考開發者文檔進行配置啟用。

6.2.2.1本地存儲內容

環信SDK使用行業標準的加密技術對在設備本地的消息等內容記錄進行加密存儲。

6.2.2.2日志脫敏

環信SDK提供不同的日志級別,方便開發者在開發調試和發布時使用,同時對設備上的日志進行脫敏,防止用戶數據被識別和竊取。

6.3RESTfulAPI安全

為方便開發者高效地管理自己的應用和服務,諸多業務功能和管理功能以RESTfulAPI的方式供開發者調用。在安全保障上,除了將站點接入WAF外,還有如下的安全控制措施。

身份鑒權

開發者在使用RESTfulAPI前,需先登錄控制臺,創建開發者專屬的key

amp;secret。后續API調用,需使用對應的key

amp;secret對,以區分不同項目或應用。

傳輸安全

RESTfulAPI支持HTTPS協議,以確保使用SSL/TLS對所有API通信進行加密,可以保護API憑據和傳輸的數據,以及防止一些如中間人攻擊(MITM,maninthemiddle)等。

API限速

服務端對API請求的速率有限制,在保證正常用戶請求可以得到響應的同時,限制惡意用戶的API請求。

輸入驗證

開發者請求的參數會經過服務器后臺過濾,以避免一些常見的易受攻擊缺陷(SQL-注入,遠程代碼執行等)。

七、環信數據安全

數據作為信息活動的載體,經過合法合規且安全的處理尤為重要。數據安全是環信最為關切的問題之一,本節將介紹環信在數據安全上采取的政策及落實的管理和技術控制措施。

7.1數據安全政策

針對日益嚴峻的網絡安全態勢,以及逐漸趨緊的監管要求,環信堅持以數據保密、完整和高可用作為業務服務的數據安全發展戰略,并將數據安全理念融入安全體系建設過程中,即

保密性:防止未經授權的訪問和竊聽

完整性:防止惡意篡改和偽造數據

可用性:通過不同數據中心和邊緣節點保障數據高可用

因此環信對所有員工均開展信息保護、隱私合規及保密意識安全培訓,并簽訂保密協議;對違反數據安全制度和保密要求的人員,我們會視情形嚴重程度以采取相應的違規處理措施,包括但不限于談話、加強培訓考核、解除勞動協議及追究其他法律責任等措施。

7.2數據采集

采用最小化的數據采集原則,只采集經用戶授權同意的,且業務所必須的數據字段。

7.3數據脫敏

為保護數據隱私,環信針對官網控制臺的企業和個人信息均進行脫敏后的展示,此策略同樣也適用于不同的服務和SDK。

7.4數據保護和加密傳輸

在IMPaaS服務中,對于不同的傳輸通道例如SDK與服務器,服務器與用戶的應用服務器之間等,都支持安全傳輸協議(HTTPS/TLS/WSS等)

7.5數據使用和存儲

對于開發者及用戶的機密信息,如密碼,我們會以哈希加鹽值(salt)的方式進行存儲。對已存儲的信息,將根據相關監管要求和制定的數據備份和存儲策略,嚴格制定數據保存期限,并按要求在需要時對其進行銷毀;對來自開發者及用戶的數據處理申請,我們將根據開發者及用戶的授權及相應監管要求配合實施數據清理或轉移。

7.6用戶的數據權利

提供了不同維度的用戶權益的API方面支持用戶數據的導出和刪除。

八、環信安全運營

安全是一個持續的過程,在實際安全運營中,環信基于自身業務特性,通過如下維度來開展。

8.1安全開發生命周期管理SDL

在軟件開發生命周期中,嵌入了安全和隱私的相關要求,結合當前流行的DevSecOps,讓SDL流程更自動化,從而在原有的安全開發生命周期的基礎上,更高效的進行安全和隱私的檢查。

8.1.1威脅建模

在設計和架構階段,為了能夠更早的發現風險,通過威脅建模來識別潛在的安全問題并實施響應環節措施。為了有效發現并解決設計階段的潛在風險,參考STRIDE的威脅建模方法,主要聚焦攻擊面最小化,基本隱私,權限最小化,默認安全,數據加密等。

8.1.2CI/CD黑白盒檢測

在安全測試層面更注重DevSecOps崇尚的內置安全防護,且已在CI/CD層面進行了黑白盒工具的集成,包含開源代碼掃描工具SonarQube,組件及合規掃描商業工具BlackDuck,App/Sdk掃描工具MobSF等,從而完善在集成發布過程中的風險監測。

8.2反入侵和安全監控

環信的各類運算系統、業務應用服務每天都會產生海量的日志數據。在落實縱深防御以應對威脅的基礎之上,安全團隊也會在最小權限范圍內采集用于安全分析的日志。基于這些日志,通過安全監控分析平臺實時運算。對識別的安全異常事件,會及時告警,安全運營人員會進一步展開關聯以及溯源分析復核;對確認的風險,會根據應急響應機制進行處置和追蹤,以保障業務系統的安全性和可用性。

8.3安全應急響應機制

基于自身即時通訊業務特性,對服務類型進行分類分級,系統性地安全評估和威脅識別,制定不同的安全事件分類標準,以及響應時效和處置流程,以確保及時有效地處理安全異常。

8.4安全合作

在自身內部安全建設的基礎上,環信已與Trustwave等多家第三方安全廠商合作,定期進行滲透測試,代碼審查,逆向工程等來幫助環信發現線上應用、系統、服務以及SDK等層面的安全漏洞和各類潛在風險,從而提升整體服務安全性和系統健壯性。

九、APP開發者接入環信SDK的合規要求

根據國家法律法規規定及監管機構執法要求,APP在使用第三方SDK時,必須在APP《隱私政策》中告知用戶,并在調用時序上做好延遲初始化配置,確保用戶同意APP《隱私政策》后SDK才可以被啟動,進行數據采集和服務。為了幫助環信開發者避免合規風險,環信推出了隱私政策合規要求,包括隱私政策展示內容和展示形式合規。

9.1.隱私政策內容合規

注意:本信息收集范圍說明適用于SDK3.8.4版本及以上

當APP開發者接入環信SDK服務時,請務必按照我國法律法規、規范性文件之要求,在APP自身的隱私政策或個人信息保護政策等相關公示文件中“第三方服務”/“第三方合作伙伴”部分明確列出本APP所集成的環信SDK收集、使用個人信息的目的、方式和范圍,環信提供如下兩種參考表達話術,以方便APP開發者更高效、更合規地調整自身的隱私政策,共同保護個人信息。

參考表達一、以文字方式向用戶呈現

如:我們使用了第三方(北京億思摩博網絡科技有限公司,以下稱“環信”)環信SDK服務為您提供【】功能。為了順利實現該功能,您需要授權環信SDK提供對應的服務;在您授權后,環信將收集您相關的個人信息。關于環信所收集的信息種類、用途、個人信息保護的規則及退

出機制等,詳見環信官網(

參考表達二、以表格方式向用戶呈現

如:【您的APP名稱】(iOS版/Android版)內嵌第三方SDK詳情

9.2隱私政策展示形式合規

需要增加明確彈窗,有明顯同意和拒絕按鈕,讓用戶自主選擇是否接受隱私政策。App隱私政策包含的環信隱私權政策鏈接可允許用戶點擊查看。

十、結語

為開發者提供合規、安全、可信的即時通訊云平臺,是環信所有架構和產品服務首要考慮的要素之一。環信從人員、技術、管理、流程等多個方面系統性推進信息安全政策的落地,履行監管合規義務,與行業客戶以及第三方社區或團體個人緊密合作,同時積極探索新的技術,推進安全自動化、智能化,實現安全防護能力高效輸出。

在日趨復雜的互聯網環境下,技術迭代周期越來越短,新型攻擊手段層出不窮,我們無時不刻都在面臨各類安全威脅。篳路藍縷啟山林、櫛風沐雨砥礪行,在此背景下,希望本白皮書能夠為企業或機構的安全建設提供參考和借鑒,也歡迎業界同仁共同參與完善,助力行業高質量穩健發展!

訪問環信官網,免費下載白皮書PDF全文。

怎么在github上開源ios代碼

1

AFNetworking 在眾多iOS開源項目中,AFNetworking可以稱得上是最受開發者歡迎的庫項目

AFNetworking是一個輕量級的iOS、Mac OS X網絡通信類庫,現在是GitHub上第三大Objective-C庫

它建立在NSURLConnection、NSOperation等類庫的基礎上,讓很多網絡通信功能的實現變得十分簡單,因此,許多iOS應用開發都會使用到它

支持HTTP請求和基于REST的網絡服務(包括GET、POST、PUT、DELETE等); 支持ARC; 要求iOS 5

0及以上版本; 有一些插件擴展已有的功能,還有一個功能齊全的API; 從URL中獲取JSON特別簡單

2

Three20 Three20原本是iPhone版Facebook中所使用的工具庫,包括照片查看器等一系列的iPhone UI類集,以及HTTP磁盤緩存等一些通用工具

后來從Facebook iPhone應用中剝離出來,成為了一個深受開發者喜愛的通用框架

3

facebook-ios-sdk 此前在“GitHub上最受歡迎的開源項目”Android系列文章(一)中,我們曾介紹過允許開發者將Facebook集成到Android應用中的Facebook SDK for Android

Facebook SDK for iOS和它一樣,可以讓開發者將Facebook相關功能集成到自己的iOS App中

Facebook無疑是最成功的SNS社區,如果能夠讓App具有與Facebook集成的功能,那勢必會帶來非常好的效果

4

RestKit Restkit是一個主要用于iOS上網絡通信的開源Objective-C框架,除了發送請求、接受響應這些基本功能外,還附帶Core Data,以及將遠程JSON映射為本地對象的功能

主要特點: 可在iOS和Mac OS X的Objective-C中與RESTful Web服務進行簡單交互; 包含簡單的HTTP Request/Response API; 帶有強大的對象映射系統,用于減少代碼長度; RestKit可降低JSON/XML的處理的資源消耗,支持通過SBJSON和YAJL進行JSON解析

5

asi-買粉絲-request ASIHTTPRequest是一款極其強勁的HTTP訪問開源項目,能夠讓簡單的API完成非常復雜的功能,比如異步請求、隊列請求、GZIP壓縮、緩存、斷點續傳、進度跟蹤、上傳文件、HTTP認證

ASIHTTPRequest適用于基本的HTTP請求,和基于REST的服務之間的交互

使用Objective-C編寫,能夠同時用于Mac OS X和iPhone應用中

6

買粉絲買粉絲s2d-x 在《GitHub上最火的40個Android開源項目(一)》中,我們已經非常詳細地介紹了買粉絲買粉絲s2d-x開源項目

買粉絲買粉絲s2d-x支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多個平臺

7

買粉絲買粉絲s2d-iphone(買粉絲買粉絲s2d) 買粉絲買粉絲s2d for iPhone是一個開源框架,用于為iPod Touch、iPhone、iPad及Mac OS X構建2D游戲、演示程序及其他圖形交互式應用

基于買粉絲買粉絲s2d設計,使用相同的API,但不同于買粉絲買粉絲s2d使用Python,買粉絲買粉絲s2d for iPhone是使用Objective-C實現的

買粉絲買粉絲s2d for iPhone主要特性: 快 免費 易于使用 社區支持 8

買粉絲買粉絲s2d-iphone(jpsarda) 該項目是對買粉絲買粉絲s2d for iPhone的擴展

9

GPUImage GPUImage是一個基于GPU圖像和視頻處理的開源iOS框架

主要功能如下: 提供各種各樣的圖像處理濾鏡,并且支持照相機和攝像機的實時濾鏡; GPUImage顧名思義,是基于GPU的圖像加速,因此圖像處理速度非常快,并且能夠自定義圖像濾鏡; 支持ARC

10

MonoGame MonoGame是一個Microsoft XNA 4

x Framework的開源跨平臺實現

此前在Android開源項目系列文章(一)中我們也進行了詳細的介紹

MonoGame支持平臺: iOS(包括Ritina Display) Android Windows(OpenGL) Mac OS X Linux Windows Store Apps(Windows 8、Windows RT) Windows Phone 8 PlayStation Mobile(目前僅支持2D) OUYA 11

Nimbus Nimbus是一個開源的iOS框架,比起Three20,Nimbus的文檔更為全面、豐富,能夠實現很多非常炫的界面特效

因此,開發者可以借助Nimbus來降低項目設計的復雜度

12

cheddar-ios Cheddar是一個簡單即時的任務管理器,Cheddar for iOS是Cheddar的iOS客戶端,通用于iPhone和iPad

13

ViewDeck IIViewDeckController能夠實現類似于Path 2

0 的視圖左右滑動的效果,支持向左或向右順滑的滑動操作

14

ShareKit ShareKit是iPhone開發的第三方接口,允許你一鍵分享文字、圖片、買粉絲、文件等內容到Facebook、Twitter、Delicious、Tumblr、Google Reader等第三方網站上

15

GMGridView GMGridView是一款開源的iOS(iPhone/iPad)表格視圖,允許用戶手勢對表格單元進行排序,在單元格需要展示時才進行裝載,這樣極大地提高了表格的效率

其中的伸縮/旋轉/平移手勢能夠讓用戶改變視圖,還能夠實現從CellView到全屏的切換

16

QuickDialog QuickDialog可以幫助開發者快速創建復雜的表單,實現包括登錄界面在內的各種樣式的TableView輸入界面,此外,還可以創建帶有多個文本域的表格及項目

17

appirater Appirater是一個可以直接使用到任何iPhone應用(iOS4

0及以上)中的開源類,用于提醒用戶在打開App時,對應用進行或打分

18

SVProgressHUD SVProgressHUD能夠實現多種HUD效果,多用于程序正在執行耗時較長的任務,需要用戶等待

除了顯示等待的HUD,還可以顯示命令執行成功或者失敗的HUD

19

Reader 該項目能夠讓iOS開發者輕而易舉地在iOS設備屏幕上顯示PDF文件

代碼通用,不需要任何XIB(因為所有UI元素都是代碼生成的,具有極大的靈活性),運行于iOS 4

0及其以上版本設備中,同時還支持所有Retina Display設備

支持: 諸如iBooks等的文檔導航; 設備全方位旋轉; 對PDF進行加密(密碼保護); PDF鏈接(URI及跳轉頁面); PDF旋轉頁面

20

Co買粉絲aAsyncSocket Co買粉絲aAsyncSocket提供了十分強大而又易用的Mac OS X及iOS異步套接庫,支持TCP和UDP,其中,AsyncSocket類是支持TCP的,AsyncUdpSocket是支持UDP的

AsyncSocket是封裝了CFSocket和CFSteam的TCP/IP socket網絡庫,提供異步操作

AsyncUdpSocket是UDP/IP socket網絡庫,包裝自CFSocket

很赞哦!(933)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:四川甘孜石渠县

工作室:小组

Email:[email protected]