2016-12-22 3 views
1

В моем проекте для Android-приложения Checkmarkx используется для сканирования исходного кода для проблем с безопасностью. Checkmarkx сообщает о проблеме с библиотекой Google Volley. Вот описание ошибки:checkmarx сообщил REFELCTED_XSS_ALL_CLIENT для Volley

Метод performRequest в строке 89 из \ приложения \ библиотеки \ залп \ SRC \ главная \ Java \ ком \ Android \ залп \ инструментарии \ HurlStack.java получает пользовательский ввод для getHeaders элемент. Значение этого элемента, затем , протекает через код без надлежащей дезинфекции или проверки и в конечном итоге отображается пользователю в методе parseNetworkResponse в строке 61 из \ app \ libraries \ volley \ src \ main \ java \ com \ android \ volley \ Панели инструментов \ JsonArrayRequest.java. Это может позволить атаку Cross-Site-Scripting.

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. Однако я не могу найти, что он отображается пользователю вообще. Это ложная тревога? И в каком состоянии может произойти атака Cross-Site-Scripting в приложении для Android? Это происходит только тогда, когда вы используете веб-просмотр?

ответ

2

Позвольте мне сначала ответить на ваш последний вопрос. Да, на него влияет только почти WebView. Другой (менее распространенный) сценарий может быть, если полезная нагрузка XSS сохраняется в файле, а затем открывается браузером.

HTTP-заголовки считаются допустимым вектором для XSS, поэтому это не похоже на ложную тревогу. Вот два ресурса для дальнейшего чтения: