Skip to content

Commit a706046

Browse files
committed
Reestructured test
1 parent c138ed3 commit a706046

File tree

1 file changed

+53
-65
lines changed

1 file changed

+53
-65
lines changed

java/ql/test/query-tests/security/CWE-749/UnsafeAndroidAccess.java

Lines changed: 53 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -9,76 +9,64 @@ public class UnsafeAndroidAccess extends Activity {
99
public void onCreate(Bundle savedInstanceState) {
1010
super.onCreate(savedInstanceState);
1111
setContentView(R.layout.webview);
12-
{
13-
WebView wv = (WebView) findViewById(R.id.my_webview);
14-
WebSettings webSettings = wv.getSettings();
15-
16-
webSettings.setJavaScriptEnabled(true);
17-
webSettings.setAllowUniversalAccessFromFileURLs(true);
18-
19-
wv.setWebViewClient(new WebViewClient() {
20-
@Override
21-
public boolean shouldOverrideUrlLoading(WebView view, String url) {
22-
view.loadUrl(url);
23-
return true;
24-
}
25-
});
26-
27-
String thisUrl = getIntent().getExtras().getString("url");
28-
wv.loadUrl(thisUrl); // hasUnsafeAndroidAccess
29-
}
30-
31-
{
32-
WebView wv = (WebView) findViewById(R.id.my_webview);
33-
WebSettings webSettings = wv.getSettings();
34-
35-
webSettings.setJavaScriptEnabled(true);
36-
webSettings.setAllowUniversalAccessFromFileURLs(true);
37-
38-
wv.setWebViewClient(new WebViewClient() {
39-
@Override
40-
public boolean shouldOverrideUrlLoading(WebView view, String url) {
41-
view.loadUrl(url);
42-
return true;
43-
}
44-
});
45-
46-
String thisUrl = getIntent().getStringExtra("url");
47-
wv.loadUrl(thisUrl); // hasUnsafeAndroidAccess
48-
}
49-
50-
{
51-
WebView wv = (WebView) findViewById(-1);
52-
WebSettings webSettings = wv.getSettings();
53-
54-
wv.setWebViewClient(new WebViewClient() {
55-
@Override
56-
public boolean shouldOverrideUrlLoading(WebView view, String url) {
57-
view.loadUrl(url);
58-
return true;
59-
}
60-
});
12+
testJavaScriptEnabledWebView();
13+
testCrossOriginEnabledWebView();
14+
testSafeWebView();
15+
}
6116

62-
String thisUrl = getIntent().getExtras().getString("url"); // remote input
63-
wv.loadUrl(thisUrl); // Safe
64-
}
17+
private void testJavaScriptEnabledWebView() {
18+
WebView wv = (WebView) findViewById(R.id.my_webview);
19+
WebSettings webSettings = wv.getSettings();
6520

66-
{
67-
WebView wv = (WebView) findViewById(-1);
68-
WebSettings webSettings = wv.getSettings();
21+
webSettings.setJavaScriptEnabled(true);
6922

70-
webSettings.setJavaScriptEnabled(true);
23+
wv.setWebViewClient(new WebViewClient() {
24+
@Override
25+
public boolean shouldOverrideUrlLoading(WebView view, String url) {
26+
view.loadUrl(url);
27+
return true;
28+
}
29+
});
7130

72-
wv.setWebViewClient(new WebViewClient() {
73-
@Override
74-
public boolean shouldOverrideUrlLoading(WebView view, String url) {
75-
view.loadUrl(url);
76-
return true;
77-
}
78-
});
31+
String thisUrl = getIntent().getExtras().getString("url");
32+
wv.loadUrl(thisUrl); // hasUnsafeAndroidAccess
33+
wv.loadUrl("https://www.mycorp.com/" + thisUrl); // Safe
34+
wv.loadUrl("https://www.mycorp.com"); // Safe
35+
}
7936

80-
wv.loadUrl("https://www.mycorp.com"); // Safe
81-
}
37+
private void testCrossOriginEnabledWebView() {
38+
WebView wv = (WebView) findViewById(R.id.my_webview);
39+
WebSettings webSettings = wv.getSettings();
40+
webSettings.setAllowUniversalAccessFromFileURLs(true);
41+
42+
wv.setWebViewClient(new WebViewClient() {
43+
@Override
44+
public boolean shouldOverrideUrlLoading(WebView view, String url) {
45+
view.loadUrl(url);
46+
return true;
47+
}
48+
});
49+
50+
String thisUrl = getIntent().getStringExtra("url");
51+
wv.loadUrl(thisUrl); // hasUnsafeAndroidAccess
52+
wv.loadUrl("https://www.mycorp.com/" + thisUrl); // hasUnsafeAndroidAccess
53+
wv.loadUrl("https://www.mycorp.com"); // Safe
8254
}
8355

56+
private void testSafeWebView() {
57+
WebView wv = (WebView) findViewById(-1);
58+
59+
wv.setWebViewClient(new WebViewClient() {
60+
@Override
61+
public boolean shouldOverrideUrlLoading(WebView view, String url) {
62+
view.loadUrl(url);
63+
return true;
64+
}
65+
});
66+
67+
String thisUrl = getIntent().getExtras().getString("url");
68+
wv.loadUrl(thisUrl); // Safe
69+
wv.loadUrl("https://www.mycorp.com/" + thisUrl); // Safe
70+
wv.loadUrl("https://www.mycorp.com"); // Safe
71+
}
8472
}

0 commit comments

Comments
 (0)