Commit 89e050d7 authored by Andy Wilkinson's avatar Andy Wilkinson

Document security risks of DevTools' remote support more clearly

Previously, the security risks and our recommendations on how to
mitigate them were not documented as clearly as they could have been.
This commit makes some changes to try to address this:

1. The security risk is now noted at the beginning of the section
2. The recommendation to use SSL is now documented more prominently
   and an alternative recommendation to only use remote support on
   a trusted network has been added.
3. The example secret has been removed to prevent copy and paste
4. A recommendation to use a secret that is unique and strong has been
   added

Closes gh-18825
parent c7801059
...@@ -912,7 +912,11 @@ NOTE: Profiles activated in `.spring-boot-devtools.properties` will not affect t ...@@ -912,7 +912,11 @@ NOTE: Profiles activated in `.spring-boot-devtools.properties` will not affect t
=== Remote Applications === Remote Applications
The Spring Boot developer tools are not limited to local development. The Spring Boot developer tools are not limited to local development.
You can also use several features when running applications remotely. You can also use several features when running applications remotely.
Remote support is opt-in. Remote support is opt-in as enabling it can be a security risk.
It should only be enabled when running on a trusted network or when secured with SSL.
If neither of these options is available to you, you should not use DevTools' remote support.
You should never enable support on a production deployment.
To enable it, you need to make sure that `devtools` is included in the repackaged archive, as shown in the following listing: To enable it, you need to make sure that `devtools` is included in the repackaged archive, as shown in the following listing:
[source,xml,indent=0,subs="verbatim,quotes,attributes"] [source,xml,indent=0,subs="verbatim,quotes,attributes"]
...@@ -930,15 +934,8 @@ To enable it, you need to make sure that `devtools` is included in the repackage ...@@ -930,15 +934,8 @@ To enable it, you need to make sure that `devtools` is included in the repackage
</build> </build>
---- ----
Then you need to set a `spring.devtools.remote.secret` property, as shown in the following example: Then you need to set the `spring.devtools.remote.secret` property.
Like any important password or secret, the value should be unique and strong such that it cannot be guessed or brute-forced.
[source,properties,indent=0]
----
spring.devtools.remote.secret=mysecret
----
WARNING: Enabling `spring-boot-devtools` on a remote application is a security risk.
You should never enable support on a production deployment.
Remote devtools support is provided in two parts: a server-side endpoint that accepts connections and a client application that you run in your IDE. Remote devtools support is provided in two parts: a server-side endpoint that accepts connections and a client application that you run in your IDE.
The server component is automatically enabled when the `spring.devtools.remote.secret` property is set. The server component is automatically enabled when the `spring.devtools.remote.secret` property is set.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment