白名單指南

域白是一種安全模式,控制訪問到您應用程式有沒有控制的外部域。 科爾多瓦的預設安全性原則允許訪問的任何網站。 在移動之前您在生產中的應用,應制訂白名單和允許訪問特定的網路域和子域。

科爾多瓦遵循W3C 構件訪問規範,它依賴于 <access> 中應用程式的元素 config.xml 檔以啟用對特定域的網路訪問。 對於依賴于所述的命令列介面 CLI 工作流的專案,此檔位於專案的頂級目錄。 否則為特定于平臺的發展道路,位置列出以下各節。 (每個平臺上見各種平臺指南的詳細資訊)。

下面的示例演示白名單中的語法:

亞馬遜火 OS 白

在找到特定平臺白規則res/xml/config.xml.

Android 白

在找到特定平臺白規則res/xml/config.xml.

: 在 Android 2.3 上和之前,域白僅適用于 href 的超連結,不引用的資源,如圖像和腳本。 採取步驟,避免從被注入到應用程式的腳本。

導航到非白名單域通過 href 的超連結會導致要打開預設瀏覽器中,而不是在應用程式中的頁。(比較這到下面提到的 iOS 的行為)。

iOS 白

該平臺的白規則命名的應用程式目錄中找到 config.xml 檔。

沒有一個協定,如指定的起源 www.apache.org 而不是 http://www.apache.org ,預設為所有的 httphttpsftp ,和 ftps 計畫。

在 iOS 平臺上的萬用字元是比在W3C 構件訪問規範更靈活。 例如,以下訪問所有子域和頂層網域如 .com.net

    <access origin="*.google.*" />

與上文指出的對非白名單域通過導航的 Android 平臺不同的是 href iOS 上的超連結可以防止頁面打開在所有。

黑莓 10 白

在找到白規則www/config.xml.

黑莓 10 位使用萬用字元有別于其他平臺兩種方式:

  • 通過訪問任何內容 XMLHttpRequest 必須顯式聲明。 設置 origin="*" 不在這種情況下工作。 另外,所有 web 安全性可能會都禁用使用 WebSecurity 黑莓手機配置中所述的首選項:

    <preference name="websecurity" value="disable" />
    
  • 作為替代設置 *.domain ,設置附加 subdomains 屬性為 true 。 它應設置為 false ,預設情況。 例如,以下允許訪問 google.commaps.google.com ,和 docs.google.com

    <access origin="http://google.com" subdomains="true" />
    

    以下縮小訪問到 google.com

    <access origin="http://google.com" subdomains="false" />
    

    指定訪問到所有的域,包括本地 file:// 協定:

(有關支援的詳細資訊,請參閱黑莓的文檔訪問元素上.)

3.1.0 的 iOS 變化

之前 3.1.0 版,科爾多瓦 iOS 包括一些非標準擴展域 whilelisting 計畫其他科爾多瓦平臺都支援的。 自 3.1.0、 iOS 白名單現在符合資源白名單語法描述了本文檔的頂部。 如果您從 pre-3.1.0、 升級和使用這些擴展,您可能需要更改您 config.xml ,以前一樣繼續白組相同的資源檔。

具體而言,這些模式需要更新:

  • apache.org(無協定): 這將先前匹配 httphttpsftp ,和 ftps 的協定。 將更改為" *://apache.org/* ",包括所有協定,或都包括您需要支援的每個協定的線。

  • http://apache.*(萬用字元域的一端): 這將先前匹配的所有頂級-級別-域,包括所有可能的兩個字母 Tld (但不是有用域喜歡。 co.uk)。 為每個 TLD,您實際上控制,並且需要到白名單中包括一條線。

  • h*t*://ap*he.o*g(隨機缺少字母的萬用字元): 不再支援這些 ;更改包含為每個域和協定,你實際上需要到白名單中的一線。

Windows Phone 白

Windows Phone 7 和 8 的白規則發現在應用程式中的 config.xml 檔。

Tizen 白

白規則發現在應用程式中的 config.xml 檔。 在平臺上同樣依賴于 subdomains 屬性作為黑莓平臺。 (有關支援的詳細資訊,請參閱 Tizen 的文檔訪問元素上.)