Untuk meningkatkan keamanan aplikasi, lakukan validasi URL sebelum Kontainer memanggilnya. Panggilan ke URL yang tidak termasuk dalam daftar putih akan diblokir.
Lakukan validasi URL sebelum memanggil antarmuka berikut:
public class MPNebula {
/**
* Memulai URL online.
*
* @param url URL online.
*/
public static void startUrl(String url);
/**
* Memulai URL online.
*
* @param url URL online.
* @param param Parameter startup.
*/
public static void startUrl(String url, Bundle param);
}
// Membuat halaman.
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();
// URL online yang akan dibuka.
param.putString(H5Param.LONG_URL,url);
bundle.setParams(param);
if (h5Service != null) {
// Membuat halaman secara sinkron.
H5Page h5Page=h5Service.createPage(activity,bundle);
// Membuat halaman secara asinkron.
h5Service.createPageAsync(activity, bundle, h5PageReadyListener);
}
}Penting
Lakukan pencocokan URL secara tepat. Minimal, cocokkan scheme dan host dari URI tersebut. Gunakan ekspresi reguler (regex) dengan hati-hati atau hindari sepenuhnya. Jangan gunakan fungsi yang tidak presisi seperti contains, startsWith, endsWith, atau indexOf.