"Spam" kan vara ett av de mest fruktade orden för en ägare av en webbapplikation. Speciellt för en applikation med mycket användargenererat innehåll kan det vara en mardröm att hantera. För att hålla spammarna borta kan man använda en gratistjänst från Google som kallas reCaptcha. Google reCaptcha är en tjänst som skyddar webbplatsen från spam och missbruk och ger användarna möjlighet att intyga utan att behöva lösa en captcha, och skyddar applikationen från en överbelastningsattack genom att förhindra automatiserade formulärinlämningar.
Google reCaptcha är en bättre lösning än de befintliga bildcaptchaserna, är lätt att använda och levereras med avancerade säkerhetsfunktioner. Med hjälp av en avancerad riskanalysmotor hindrar reCaptcha de automatiserade robotarna från att delta i skräppostaktiviteter för din applikation. Dessutom är det mycket mer användarvänligt än de tidigare bild captchas.
Innan du kan lägga till Google reCaptcha i din applikation måste du följa dessa steg:
1) Skaffa inloggningsuppgifterna
2) Lägg till recaptcha-taggar
3) För att hantera verifiering, skapa en recaptcha-klass
4) I Registrations controller lägger du till metoden verify_recaptcha
Uppstart
Steg 1: -.
Lägg till följande i din gem-fil:
gem "recaptcha", :require => "recaptcha/rails"
Steg 2
Logga in på http://developers.google.com och logga in på ditt gmail-konto och sök efter "recaptcha". Klicka på "Registrera dig för en API-nyckel" länk. Kontrollera den hemliga nyckeln och webbplatsnyckeln. Som namnet antyder bör den hemliga nyckeln förvaras på en säkrare plats medan webbplatsnyckeln är den offentliga nyckel som används för att autentisera sig hos Google. Registrera ditt webbplatsnamn med ditt Google-konto för att hämta den offentliga och privata nyckeln som kommer att användas senare i applikationen.
När registreringen är klar får du den offentliga nyckeln och den privata nyckeln. Från klientsidan skickas den offentliga nyckeln till recaptcha-tjänsten för att begära en ny captcha. Den privata nyckeln används på serversidan för att verifiera om rätt värde har angetts.
Registrera dig sedan för en reCAPTCHA API-nyckel och lägg till den i dina konfigurationsfiler för miljön:
1TP5Sätt in detta i development.rb och i production.rb
ENV_RECAPTCHA_PUBLIC_KEY= "din-offentliga-nyckel
ENV_RECAPTCHA_PRIVAT_NYCKEL= "din privata nyckel
Steg 3
Skapa en fil med namnet recaptcha.rb i config/initializers för att konfigurera recaptcha-parametrar.
Recaptcha.configure do |config|
config.public_key = ' ENV_RECAPTCHA_PUBLIC_KEY'
config.private_key = 'ENV_RECAPTCHA_PRIVATE_KEY'
config.proxy = 'http://www.google.com/recaptcha/api/verify'
slut
Steg 4: -.
Utsikt
Captcha Gem hjälper till att rendera den faktiska captcha-rutan. Det är så enkelt som att lägga in följande i din vy vid den punkt där du vill att captcha ska visas:
Om du använder SSL, använd detta istället:
true %>, SSL-alternativet säkerställer att vi skickar en https-begäran till recaptcha-tjänsten.
Steg 5
Styrenhet
Captcha Gem tillhandahåller en annan hjälpmetod som skickas till reCaptcha API-servern för att verifiera om inlämningen är korrekt. Om det är så returnerar metoden true, om inte kommer den att lägga till ett anpassat felmeddelande om att recaptcha är fel i modellinstansen. Här är den grundläggande koden som du kanske har den i create-åtgärden i din controller: - I devise controllers, app/controllers/registrations_controller.rb, infoga följande kod: kräva 'recaptcha.rb' before_action :verify_recaptcha, only: [:create] def verify_recaptcha svar = Recaptcha.verify(params) session[:sign_up] = params[:user].except(:password, :password_confirmation, :remoteip) if response.code == 200 if svar['framgång'] flash[:notice] = "Recaptcha-verifieringen lyckades." else redirect_to new_user_registration_path(user: params[:user]), alert: "Recaptcha verifieringsfel." slut annat redirect_to new_user_registration_path(user: params[:user]), varning: "HTTP-anslutningsfel." slut slutSession[:sign_up] sparas eftersom registreringsformuläret kan fyllas i i förväg om verifieringen misslyckas.
Prenumerera för de senaste uppdateringarna
relaterade inlägg