在Android WebView中防止注入攻击,可以采取以下措施:
WebView webView = findViewById(R.id.webview); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(false); String html = "<script>alert('XSS Attack');</script>"; HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY).toString(); String userInput = "<script>alert('XSS Attack');</script>"; userInput = userInput.replaceAll("<script>", "").replaceAll("</script>", ""); webView.setWebViewClient(new WebViewClient() { @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { // 检查请求的URL是否安全 if (!isUrlSafe(request.getUrl().toString())) { return new WebResourceResponse("text/plain", "utf-8", new ByteArrayInputStream("Not allowed".getBytes())); } return super.shouldInterceptRequest(view, request); } private boolean isUrlSafe(String url) { // 实现URL安全检查逻辑 return true; } }); WebSettings webSettings = webView.getSettings(); webSettings.setDomStorageEnabled(false); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.setAcceptThirdPartyCookies(webView, true); cookieManager.setAcceptHttpCookies(true); cookieManager.setUseSecureCookies(true); 通过实施这些措施,可以显著降低Android WebView受到注入攻击的风险。然而,需要注意的是,没有任何方法可以完全防止所有的安全威胁,因此应该始终保持警惕并定期更新安全策略。