Heim> Java> Hauptteil

Vermeiden Sie es, Backend-Details den Clients im Spring-Boot zugänglich zu machen

王林
Freigeben: 2024-02-22 12:28:06
nach vorne
533 Leute haben es durchsucht

Kürzlich hat Ihnen der PHP-Editor Xigua einen Frage-und-Antwort-Artikel zu Java vorgelegt, in dem es darum geht, wie Sie vermeiden können, Backend-Details dem Client in Spring-Boot preiszugeben. Während des Entwicklungsprozesses ist der Umgang mit vertraulichen Informationen wie Ausnahmeinformationen und Fehleraufforderungen eines der Probleme, auf die sich Entwickler konzentrieren müssen, um den Verlust vertraulicher Daten zu vermeiden. Dieser Artikel beantwortet diese Fragen für Sie und hilft Ihnen dabei, die Sicherheit Ihrer Anwendungen besser zu schützen.

Frageninhalt

Wenn ein falscher/nicht vorhandenerspring-boot-Endpunkt auftritt. Klassendetails auf Codeebene werden angezeigt. Dies kann als Sicherheitsproblem gekennzeichnet werden.

Beispiel

Anfrage

localhost:8500/api/1.0/service/../msc -> this is a bad formatted endpoint, which does not exist.
Nach dem Login kopieren

Antwort

{ "timestamp": "2024-01-31t08:33:44.321+0000", "status": 400, "error": "bad request", "message": "failed to find lookuppath '/api/1.0/msc' within requesturi '/api/1.0/service/../msc'. this could be because the path has invalid encoded characters or isn't normalized.; nested exception is org.springframework.web.servlet.resource.resourceurlencodingfilter$lookuppathindexexception: failed to find lookuppath '/api/1.0/msc' within requesturi '/api/1.0/service/../msc'. this could be because the path has invalid encoded characters or isn't normalized.", "path": "/api/1.0/service/../msc" }
Nach dem Login kopieren

Ein Blick auf die Fehlermeldung zeigt, dass im Hintergrund eine Spring-Boot-Anwendung läuft, was eine Sicherheitslücke darstellen könnte, da die Details auf Codeebene in der Nachricht offengelegt werden.

Wie können wir dem Kunden eine allgemeine Nachricht anstelle der gesamten Ausnahmedetails senden?

Ich habe auch versucht, @controlleradvice zu verwenden, aber die Ausnahme wird darin nicht abgefangen. Es sieht so aus, als ob das Problem auftritt, bevor es überhaupt den Controller selbst erreicht.

@ExceptionHandler(Exception.class) public ResponseEntity handleException(Exception ex) { log.error("Exception in flow", ex); ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error"); }
Nach dem Login kopieren

Workaround

Sie können eine Kombination von Methoden verwenden, um die Ausnahme zu behandeln und sie nicht preiszugeben. Sehen Sie sich//m.sbmmt.com/link/41fa3925a7ec42ce029c43d6676e4b2can, um die verschiedenen Arten von Handlern zu überprüfen.

Das obige ist der detaillierte Inhalt vonVermeiden Sie es, Backend-Details den Clients im Spring-Boot zugänglich zu machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!