全部產品
Search
文件中心

Mobile Platform as a Service:開啟 URL 判斷邏輯

更新時間:Jul 26, 2024

為了更好地保障開啟 URL 時 App 的安全性,可在容器調用相關 URL 之前對 URL 進行判斷,如果開啟的不是白名單內的 URL 則禁止調用。

建議在調用如下介面前進行 URL 判斷:

public class MPNebula {
    /**
    * 啟動線上 URL
    *
    * @param url 線上地址
    */
    public static void startUrl(String url);
    
    /**
    * 啟動線上 URL
    *
    * @param url   線上地址
    * @param param 啟動參數
    */
    public static void startUrl(String url, Bundle param);
}

// 建立page
public static final void openH5(String url) {
    if (TextUtils.isEmpty(url)) {
        return;
    }
    H5Service h5Service = LauncherApplicationAgent.getInstance().getMicroApplicationContext()
            .findServiceByInterface(H5Service.class.getName());
    H5Bundle bundle = new H5Bundle();
    Bundle param = new Bundle();
    // 開啟的線上地址
    param.putString(H5Param.LONG_URL,url);
    bundle.setParams(param);
    if (h5Service != null) {
        // 同步建立api
        H5Page h5Page=h5Service.createPage(activity,bundle);
        
        // 非同步建立api
        h5Service.createPageAsync(activity, bundle, h5PageReadyListener);
    }
}
重要

URL 要進行精準匹配,至少要匹配到 URI 類的 scheme 和 host 資訊,慎用或不用正則匹配,嚴格避免使用 containsstartsWithendsWithindexOf 等不精準函數。