Verificaţi pentru configurarea validă a metodei getQueryString în fişiere de întâmpinare JSP

Această regulă detectează apelul metodei request.getQueryString() în fişierele de întâmpinare JSP ale unui modul web. Aceste apeluri sunt semnalate astfel încât utilizatorul să poată verifica utilizarea corectă şi pentru a evita valori null pentru şirurile de interogare.

În WebSphere metoda request.getQueryString() va returna null, dacă este apelat fişierul de întâmpinare (welcome), fie direct, fie printr-o înaintare, cu un şir de interogare care nu conţine numele de fişier de întâmpinare în URL. De exemplu, dacă fişierul de întâmpinare este index.jsp, şi utilizatorul introduce URL-ul (sau altă componentă sistem înaintează la URL-ul): http://mycompany.com/?param=value atunci WebSphere va trimite cererea la index.jsp. Apelul request.getQueryString() în index.jsp totuşi va returna null în loc de param=value. Aceasta este aplicabilă doar pentru fişiere de întâmpinare aşa cum au fost definite în descriptorul de implementare web.xml.

Utilizatorul poate obţine valoarea şirului de interogare dintr-un fişier JSP de întâmpinare în trei moduri:

  1. Asiguraţi-vă că URL-ul include numele de fişier de întâmpinare JSP. De exemplu, modificaţi URL-ul de la: http://mycompany.com/?param=value la http://mycompany.com/index.jsp?param=value. Această soluţie va funcţiona pentru componentele care înaintează către JSP, dar nu va funcţiona pentru fişierele de întâmpinare JSP care pot fi accesate direct de utilizatori externi care pot introduce direct URL-ul, de exemplu folosind un browser web.
  2. Utilizatorul poate obţine şirul de interogare apelând request.getAttribute("javax.servlet.forward.query_string") în loc de request.getQueryString().
  3. Utilizatorul ppoate seta proprietatea personalizată WebSphere com.ibm.ws.webcontainer.provideQStringToWelcomeFile la true în proprietăţile container web. Setarea acestei proprietăţi la true va modifica comportamentul containerul pentru a transmite şirul de interogare la fişierul de întâmpinare.

Pentru informaţii suplimentare, vedeţi: