Captcha: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
 
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Beschreibung==
+
__TOC__
Die Captcha-Funktionalität dient zur Sicherung von Live-Seiten. Es handelt sich hierbei um einen Schutzmechanismus vor automatisierten Zugriffen durch sog. Robots. Realisiert wird dies durch die Darstellung eines kleinen Bildes mit verzerrt dargestellten Wörtern, die der Anwender in ein entsprechendes Formularfeld übertragen muss.
+
Die Captcha-Funktionalität dient zur Sicherung von Live-Seiten. Es handelt sich hierbei um einen Schutzmechanismus vor automatisierten Zugriffen durch sog. Robots. Realisiert wird dies durch die Darstellung eines kleinen Bildes in dem Wörter verzerrt angezeigt werden, die der Anwender in ein entsprechendes Formularfeld übertragen muss.
 
Ein interner Mechanismus sorgt dafür, dass stets ein neues Bild erstellt wird und dieses auch nur genau einmal verwendet werden kann. Ist die Eingabe nicht korrekt, so kann eine entsprechende Meldung generiert werden.
 
Ein interner Mechanismus sorgt dafür, dass stets ein neues Bild erstellt wird und dieses auch nur genau einmal verwendet werden kann. Ist die Eingabe nicht korrekt, so kann eine entsprechende Meldung generiert werden.
  
Über <img src="<sp:url uri="/ies/captcha"/>"> kann bei einer Live-Seite in
+
<source lang="xml">
dem entsprechenden Publisher (als "Live" konfiguriert) ein Captcha-Bild
+
<img src="<sp:url uri="/ies/captcha"/>">
erzeugt werden.
+
</source>
Falls man ein Formular absendet ohne einen IES-Handler zu verwenden
+
Mit diesem Code (s.o.) kann bei einer Live-Seite in dem entsprechenden Publisher (als "Live" konfiguriert) ein Captcha-Bild erzeugt werden.
(Email o.ä.) kann man wie folgt vorgehen:
+
Falls man ein Formular absendet, ohne einen IES-Handler zu verwenden (Email o.ä.), kann man wie folgt vorgehen:
Neben dem Bild gibt man ein Input-Text Feld an, dessen Name
+
 
SYS_captcha ist. Wird das Formular abgeschickt, so kann mit diesem
+
Neben dem Bild gibt man ein Input-Text Feld an, dessen Name SYS_captcha ist. Wird das Formular abgeschickt, so kann mit diesem Aufruf '''EINMAL''' (wichtig) geprüft werden, ob die Eingabe dem Bild entsprach:
Aufruf EINMAL (wichtig) geprüft werden, ob die Eingabe dem Bild entsprach:
 
<sp:if name="system.captcha.equals(${SYS_captcha})"></sp:if>
 
  
Hier ein vollständiges Beispiel:
+
<source lang="xml">
 +
<sp:if name="system.captcha.equals(${SYS_captcha})">true</sp:if>
 +
</source>
 +
 
 +
==Beispiele==
 +
Im folgenden werden zwei Beispiele für den Einsatz der Captcha-Funktionalität gezeigt. Im ersten Fall wird ein einfaches Formular einer <code>.spml</code>-Datei über ein Captcha-Bild geschützt. Die Auswertung des Formulars, sowie die Prüfung des Captcha erfolgt innerhalb dieser [[Live-Seiten|Live-Seite]]. Das zweite Beispiel beschreibt die Integration eines Captcha in eine Live-Applikation wie z.B. die Anmeldung zu einem Newsletter. In diesem Fall wird das Formular an einen Handler des IES gesendet und das Captcha dort ausgewertet.
 +
 
 +
=== Beispiel einer Live-Seite: ===
 
<source lang="xml">
 
<source lang="xml">
 
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
 
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
Zeile 27: Zeile 32:
  
 
<form action="captcha_test.spml">
 
<form action="captcha_test.spml">
<img src='<sp:url uri="/ies/captcha"/>'/><br/>
+
<img src="<sp:url uri="/ies/captcha"/>"/><br/>
 
<input type="text" name="SYS_captcha"/><br/>
 
<input type="text" name="SYS_captcha"/><br/>
 
<input type="submit" value="submit"/>
 
<input type="submit" value="submit"/>
Zeile 36: Zeile 41:
 
</source>
 
</source>
  
Fall man Captcha bei Live-GUIs mit Handlern einbauen möchte muss man über des Login-Tag
+
=== Beispiel einer Live-Applikation: ===
eine Session erzeugen, die nur mit Captchas Handler aufrufen kann. Hierzu hat der
+
 
Login-Tag das neue Attribut "captcharequired" mit den Werten "true" bzw. "false".
+
Falls man Captcha bei Live-Applikationen einsetzen möchte, muss man über das Login-Tag eine Session erzeugen, die nur zusammen mit Captcha-Handler aufgerufen werden kann. Hierzu hat der [[Login (SP-Tag)|Login-Tag]] das neue Attribut "captcharequired" mit den möglichen Werten "true" bzw. "false". Der Formularfeldname für die Eingabe des Captchas ist ebenfalls SYS_captcha. Ist das Captcha nicht valide, wird der Fehler "SYS-E011" gesetzt, den man abfragen kann.
Der Formularname für die Eingabe des Captchas ist ebenfalls SYS_captcha. Ist das
 
Captcha nicht valide, kann wird der Fehler "SYS-E011" gesetzt, den man abfragen kann.
 
  
Hier ein vollständiges Beispiel:
 
 
<source lang="xml">
 
<source lang="xml">
 
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
 
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
Zeile 48: Zeile 50:
  
 
<sp:login
 
<sp:login
login="Wartung"
+
login="liveaccount"
password="develop"
+
password="avKuf7Rq"
namespace="ies2_develop_client"
+
namespace="test_client"
 
captcharequired="true"/>
 
captcharequired="true"/>
  
Zeile 71: Zeile 73:
  
 
Captcha:<br/>
 
Captcha:<br/>
<img src='<sp:url uri="/ies/captcha"/>'/><br/>
+
<img src="<sp:url uri="/ies/captcha"/>"/><br/>
 
<sp:text type="virtual" name="SYS_captcha"/><br/>
 
<sp:text type="virtual" name="SYS_captcha"/><br/>
  
Zeile 77: Zeile 79:
 
</sp:form>
 
</sp:form>
 
</source>
 
</source>
Eine funktionale Beschreibung mit Beispielen folgt.
+
 
 +
<noinclude>
 +
[[Category:Funktionsbeschreibungen]]
 +
[[Category:Qualität_des_Codes_prüfen]]
 +
</noinclude>

Aktuelle Version vom 18. August 2009, 13:20 Uhr

Die Captcha-Funktionalität dient zur Sicherung von Live-Seiten. Es handelt sich hierbei um einen Schutzmechanismus vor automatisierten Zugriffen durch sog. Robots. Realisiert wird dies durch die Darstellung eines kleinen Bildes in dem Wörter verzerrt angezeigt werden, die der Anwender in ein entsprechendes Formularfeld übertragen muss. Ein interner Mechanismus sorgt dafür, dass stets ein neues Bild erstellt wird und dieses auch nur genau einmal verwendet werden kann. Ist die Eingabe nicht korrekt, so kann eine entsprechende Meldung generiert werden.

<img src="<sp:url uri="/ies/captcha"/>">

Mit diesem Code (s.o.) kann bei einer Live-Seite in dem entsprechenden Publisher (als "Live" konfiguriert) ein Captcha-Bild erzeugt werden. Falls man ein Formular absendet, ohne einen IES-Handler zu verwenden (Email o.ä.), kann man wie folgt vorgehen:

Neben dem Bild gibt man ein Input-Text Feld an, dessen Name SYS_captcha ist. Wird das Formular abgeschickt, so kann mit diesem Aufruf EINMAL (wichtig) geprüft werden, ob die Eingabe dem Bild entsprach:

<sp:if name="system.captcha.equals(${SYS_captcha})">true</sp:if>

Beispiele

Im folgenden werden zwei Beispiele für den Einsatz der Captcha-Funktionalität gezeigt. Im ersten Fall wird ein einfaches Formular einer .spml-Datei über ein Captcha-Bild geschützt. Die Auswertung des Formulars, sowie die Prüfung des Captcha erfolgt innerhalb dieser Live-Seite. Das zweite Beispiel beschreibt die Integration eines Captcha in eine Live-Applikation wie z.B. die Anmeldung zu einem Newsletter. In diesem Fall wird das Formular an einen Handler des IES gesendet und das Captcha dort ausgewertet.

Beispiel einer Live-Seite:

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://www.sitepark.com/taglibs/core" prefix="sp" %>

<html>
<body>

<h1>captcha test</h1>
SYS_captcha: <sp:print name="SYS_captcha"/><br/>

<sp:if name="system.captcha.equals(${SYS_captcha})"><b>valid captcha!</b><br/></sp:if>

<form action="captcha_test.spml">
<img src="<sp:url uri="/ies/captcha"/>"/><br/>
<input type="text" name="SYS_captcha"/><br/>
<input type="submit" value="submit"/>
</form>

</body>
</html>

Beispiel einer Live-Applikation:

Falls man Captcha bei Live-Applikationen einsetzen möchte, muss man über das Login-Tag eine Session erzeugen, die nur zusammen mit Captcha-Handler aufgerufen werden kann. Hierzu hat der Login-Tag das neue Attribut "captcharequired" mit den möglichen Werten "true" bzw. "false". Der Formularfeldname für die Eingabe des Captchas ist ebenfalls SYS_captcha. Ist das Captcha nicht valide, wird der Fehler "SYS-E011" gesetzt, den man abfragen kann.

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://www.sitepark.com/taglibs/core" prefix="sp" %>

<sp:login
login="liveaccount"
password="avKuf7Rq"
namespace="test_client"
captcharequired="true"/>

<sp:error code="SYS-E011">
<b>invalid captcha!</b><br/>
</sp:error>

<sp:form
uri="captcha_gui_test.spml"
handler="com.sitepark.ies.control.jsp.handler.InformationHandler"
method="post"
name="articleForm">

<sp:hidden type="virtual" name="SYS_INFE_parent" value="${!{gui.informations}}"/>
<sp:hidden type="virtual" name="SYS_INFE_articleType" value="no-page"/>
<sp:hidden type="virtual" name="SYS_INFE_action" value="create"/>

Name:<br/>
<sp:text type="virtual" name="SYS_INFE_name"/><br/>

Captcha:<br/>
<img src="<sp:url uri="/ies/captcha"/>"/><br/>
<sp:text type="virtual" name="SYS_captcha"/><br/>

<input type="submit" value=" eintragen "/>
</sp:form>