我的 Android 应用项目使用 Checkmarx 扫描源代码以查找安全问题。Checkmarx 报告了 Google Volley 库的问题。这是错误描述:
\app\libraries\volley\src\main\java\com\android\volley\toolbox\HurlStack.java 第 89 行的方法 performRequest 获取用户对 getHeaders 元素的输入。然后,此元素的值在未经过适当清理或验证的情况下流经代码,并最终在 \app\libraries\volley\src\main\java\com\android\volley\toolbox\JsonArrayRequest 的第 61 行的方法 parseNetworkResponse 中显示给用户.java。这可能会启用跨站点脚本攻击。
public HttpResponse performRequest(Request<?> request, Map<String, String> additionalHeaders)
throws IOException, AuthFailureError {
String url = request.getUrl();
HashMap<String, String> map = new HashMap<String, String>();
map.putAll(request.getHeaders());
map.putAll(additionalHeaders);
....
}
它表示请求的标头被缓存,然后在JsonArrayRequest::parseNetworkResponse
. 但是我根本找不到它显示给用户。这是虚惊一场吗?在什么情况下,Android 应用程序可能会发生跨站点脚本攻击?仅当您使用网络视图时才会发生这种情况吗?