Как я могу исправить этот код, чтобы избежать уязвимости сценария сценария XXS?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу исправить этот код, чтобы избежать уязвимости сценария сценария XXS?

Сообщение Anonymous »

Я думаю, что получаю эту уязвимость от ServletRequest.
Я понимаю, что должен сделать какую -то кодирование /декодирование, чтобы разрешить эту уязвимость XXS, но не уверен, как. Может ли кто -нибудь помочь? Эти ненадежные данные включены в вывод без надлежащей дезинфекции или кодирования. Атакованные смогут изменить возвращенную веб -страницу, просто предоставив модифицированные данные в методе пользовательского ввода, который читается с помощью строки ServerProxy Line Public Replessentity ServerProxy (@Requestbody (требуется = false) строковое тело, httpservletrequest,
Httpmethod httpmethod, jwtauthenticationtoken jwtauthenticationtoken) {
и line
var uri = servleturicomponentsbuilder.fromRequest (ServletRequest) < /p>
import lombok.extern.slf4j.slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
import org.springframework. stereotype.Controller;
import org.springframework.web.bind.annotation. RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.client.HttpStatusCodeException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import ac.temp.events .app.service.ProxyControllerService;
import ac.temp.events.app.service.ServiceHelper;
import jakarta.servlet.http.HttpServletRequest;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Set;

@Controller
@Slf4j
public class RestProxyControllerService {
private final RestTemplate RestTemplate;
private final URI proxyUri;
private final ProxyControllerService controllerService;
private final ServiceHelper serviceHelper;

public RestProxyController(ResrTemplate, restTemplate, @Value("${proxy.url") String proxyUrl, ProxyControllerService controllerService, ServiceHelper serviceHelper) {
this.restTemplate = restTemplate;
this.proxyUri= new URI(proxyUrl);
this.controllerService = controllerService;
this.serviceHelper = serviceHelper;
}

@RequestMapping(${proxy.contextPath})
public ResponseEntity serverProxy(@RequestBody(required = false) String body, HttpServletRequest servletRequest,
HttpMethod httpMethod, JwtAuthenticationToken jwtAuthenticationToken) {

Set userRoles = serviceHelper.getRoles(jwtAuthenticationToken);

var uri = ServletUriComponentsBuilder.fromRequest(servletRequest)
.host(proxyUri.getHost())
.port(proxyUri.getPort())
.scheme(proxyUri.getScheme())
.build(true)
.toUri();

var httpEntity = new HttpEntity(body, controllerService.createRequestHeader(servletRequest, proxyUri.getHost(), userRoles));

try {
return controllerService.createResponseEntity(restTemplate.exchange(uri, method, httpEntity. String.class));
} catch (HttpStatusCodeException exp) {
return controllerService.createErrorResponseEntity(exp);
}
}
}
< /code>
Не уверен, что TR. У меня больше нет подробностей, чтобы добавить.

Подробнее здесь: https://stackoverflow.com/questions/793 ... nerability
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»