Sådan integreres Google reCAPTCHA i Java Web Application

Sådan integreres Google reCAPTCHA i Java Web Application

Introduktion

I disse dage med stigende online trusler er det vigtigere end nogensinde at beskytte dine webapplikationer mod spam, misbrug og automatiserede angreb. Google reCAPTCHA er en gratis, nem og effektiv løsning til at tilføje et ekstra lag af sikkerhed til dine websteder. Denne vejledning giver dig en trin-for-trin guide til, hvordan du integrerer Google reCAPTCHA i din Java-webapplikation.

Hvad er Google reCAPTCHA?

Google reCAPTCHA er en tjeneste, der bruger avancerede risikovurderingsteknikker til at skelne mellem mennesker og bots. Det giver en usynlig udfordring til brugere, mens det giver en nem og gnidningsfri oplevelse for ægte mennesker. Ved at integrere reCAPTCHA i dine webformularer kan du forhindre spambots i at udfylde og indsende dem.

Trin 1: Opret en reCAPTCHA-nøgle

* Gå til reCAPTCHA-siden på Google Developers-webstedet: https://www.google.com/recaptcha/admin
* Klik på “Admin Console”
* Klik på “Tilføj nøgle”
* Indtast en beskrivelse for nøglen, og vælg reCAPTCHA-typen (vi anbefaler usynlig reCAPTCHA)
* Accepter vilkårene for service og klik på “Opret”
* Du får et par nøgler: webstedsnøglen og den hemmelige nøgle. Kopier og gem disse til senere brug.

Trin 2: Tilføj reCAPTCHA-biblioteket

Tilføj reCAPTCHA-biblioteket til dine Java-afhængigheder. Brug Maven tilføjer du følgende afhængighed til din pom.xml-fil:

xml
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-recaptchaenterprise</artifactId>
<version>0.9.4</version>
</dependency>

Trin 3: Opret en reCAPTCHA-validator

Opret en reCAPTCHA-validator til at validere reCAPTCHA-token. Du får brug for webstedsnøglen og den hemmelige nøgle, som du genererede i trin 1.

java
import com.google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseServiceClient;
import com.google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseServiceSettings;
import com.google.cloud.recaptchaenterprise.v1.ScoreBasedKey;
import com.google.cloud.recaptchaenterprise.v1.TokenProperties;
import com.google.cloud.recaptchaenterprise.v1.ValidateAssessmentRequest;
import com.google.cloud.recaptchaenterprise.v1.ValidateAssessmentResponse;

public class RecaptchaValidator {

public static ValidateAssessmentResponse validate(String token, String siteKey, String secretKey)
throws IOException {
RecaptchaEnterpriseServiceSettings settings =
RecaptchaEnterpriseServiceSettings.newBuilder()
.setEndpoint("recaptchaenterprise.googleapis.com:443")
.build();
try (RecaptchaEnterpriseServiceClient client =
RecaptchaEnterpriseServiceClient.create(settings)) {
TokenProperties tokenProperties =
TokenProperties.newBuilder()
.setToken(token)
// Sæt domænet for at bekræfte, at tokenet er gyldigt for den aktuelle applikation.
.setScoringReason("højtrafik")
.build();
ScoreBasedKey scoreBasedKey =
ScoreBasedKey.newBuilder().setKey(siteKey).build();
ValidateAssessmentRequest request =
ValidateAssessmentRequest.newBuilder()
.setAssessment(tokenProperties)
.setKey(scoreBasedKey)
.build();
return client.validateAssessment(request);
}
}
}

Trin 4: Integrer med din webformular

Tilføj reCAPTCHA-widgeten til din webformular. Du skal bruge webstedsnøglen fra trin 1.


<!-- Integrer reCAPTCHA-widgeten i din webformular -->
<script src="https://www.google.com/recaptcha/api.js?render=webstedsnøgle"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('webstedsnøgle', {action: 'formular_indsend'}).then(function(token) {
// Send token til server for validering
var xhr = new XMLHttpRequest();
xhr.open('POST', '/valider', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
// Modtag valideringsrespons fra serveren og håndter det i overensstemmelse hermed
};
xhr.send('token=' + token);
});
});
</script>

Trin 5: Valider reCAPTCHA-token på serversiden

Valider reCAPTCHA-token på serversiden ved hjælp af reCAPTCHA-validatoren, som du oprettede i trin 3.

java
@PostMapping(path = "/valider")
public ResponseEntity<Void> valider(@RequestParam("token") String token) {
try {
ValidateAssessmentResponse response = RecaptchaValidator.validate(token, webstedsnøgle, hemmeligNøgle);
if (response.getTokenProperties().getValid()) {
// Token er gyldigt. Fortsæt med at behandle formularen.
return ResponseEntity.ok().build();
} else {
// Token er ugyldigt. Returner en fejlmeddelelse.
return ResponseEntity.badRequest().build();
}
} catch (IOException e) {
// Håndter fejl, der opstår under valideringen.
return ResponseEntity.internalServerError().build();
}
}

Konklusion

Ved at integrere Google reCAPTCHA i din Java-webapplikation kan du beskytte dine formularer mod spam, misbrug og automatiserede angreb. Dette giver dine brugere en sikker og gnidningsfri oplevelse, mens du sikrer pålideligheden af de indsendte data. Ud over beskyttelsen mod skadelig aktivitet kan reCAPTCHA også hjælpe dig med at forbedre din applikations brugervenlighed og brugeroplevelse.

Ofte stillede spørgsmål

1. Hvorfor skal jeg bruge reCAPTCHA?

A: reCAPTCHA hjælper med at beskytte din applikation mod spam, misbrug og automatiserede angreb. Det tilføjer et ekstra lag af sikkerhed til dine formularer og sikrer, at de kun indsendes af mennesker.

2. Hvilken type reCAPTCHA skal jeg bruge?

A: Vi anbefaler at bruge usynlig reCAPTCHA, da det giver en problemfri oplevelse for brugerne uden at forstyrre deres browsing.

3. Hvordan får jeg en reCAPTCHA-nøgle?

A: Du får en reCAPTCHA-nøgle ved at oprette en nøgle på reCAPTCHA-administratorkonsollen. Følg trinene beskrevet i Trin 1.

4. Hvordan tilføjer jeg reCAPTCHA til min webformular?

A: Du kan integrere reCAPTCHA-widgeten i din webformular ved hjælp af det givne HTML-kodeeksempel. Du skal bruge webstedsnøglen fra reCAPTCHA-administratorkonsollen.

5. Hvordan validerer jeg reCAPTCHA-token?

A: Du kan validere reCAPTCHA-token på serversiden ved hjælp af reCAPTCHA-validatoren, som vist i Java-kodeeksemplet. Du skal bruge webstedsnøglen og den hemmelige nøgle fra reCAPTCHA-administratorkonsollen.

6. Hvad er webstedsnøglen?

A: Webstedsnøglen er den offentlige nøgle, der bruges til at identificere din applikation på klienten. Du skal tilføje webstedsnøglen til reCAPTCHA-widgeten i din webformular.

7. Hvad er den hemmelige nøgle?

A: Den hemmelige nøgle er den private nøgle, der bruges til at validere reCAPTCHA-token på serversiden. Du skal ikke dele den hemmelige nøgle.

8. Hvordan kan jeg forbedre effektiviteten af reCAPTCHA?

A: Du kan forbedre reCAPTCHA-effektiviteten ved at justere tærsklen for risikoscoren, aktivere “udfordring efter handling” og bruge reCAPTCHA Enterprise for mere avancerede funktioner.