mPaaS 建議所有的 JSAPI 訪問都需要添加訪問控制,目前可以通過設置 provider 的方式添加訪問控制。
設置自定義權限控制 provider。
public class H5JSApiPermissionProviderImpl implements H5JSApiPermissionProvider { @Override public boolean hasDomainPermission(String jsapi, String url) { // 在該方法里,對所有url的jsapi請求進行校驗,安全的url才可以放行,true表示jsapi可以調用,false表示不可以調用 // 注意:以下代碼僅供參考,請根據您實際的業務需要,對url和jsapi進行校驗 // 另外還需對 jsapi、url、uri 等參數進行判空操作,防止發生 Nullpointer 異常 Uri uri = Uri.parse(url); String domain = uri.getHost(); String scheme = uri.getScheme(); if (!TextUtils.isEmpty(domain) && domain.equals("www.example.com") && "https".equals(scheme)) { return true; } else { return false; } } @Override public boolean hasThisPermission(String jsapi, String url) { // 默認返回 false 即可 return false; } }
重要URL 要進行精準匹配,至少要匹配到 URI 類的 scheme 和 host 信息,慎用或不用正則匹配,嚴格避免使用 contains、startsWith、endsWith、indexOf 等不精準函數。
在 mPaaS 初始化之后,調用容器之前,設置 provider。
H5Utils.setProvider(H5JSApiPermissionProvider.class.getName(), new H5JSApiPermissionProviderImpl());
文檔內容是否對您有幫助?