Captcha: Unterschied zwischen den Versionen
Sed (Diskussion | Beiträge) |
Sed (Diskussion | Beiträge) |
||
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | __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 | + | 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. | ||
− | + | <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: | ||
− | |||
− | + | <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= | + | <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> | ||
− | + | === Beispiel einer Live-Applikation: === | |
− | eine Session erzeugen, die nur mit | + | |
− | 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 | ||
− | Captcha nicht valide, | ||
− | |||
<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=" | + | login="liveaccount" |
− | password=" | + | password="avKuf7Rq" |
− | namespace=" | + | namespace="test_client" |
captcharequired="true"/> | captcharequired="true"/> | ||
Zeile 71: | Zeile 73: | ||
Captcha:<br/> | Captcha:<br/> | ||
− | <img src= | + | <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> | ||
− | + | ||
+ | <noinclude> | ||
+ | [[Category:Funktionsbeschreibungen]] | ||
+ | [[Category:Qualität_des_Codes_prüfen]] | ||
+ | </noinclude> |
Aktuelle Version vom 18. August 2009, 12: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>