Captcha: Unterschied zwischen den Versionen
Sed (Diskussion | Beiträge) |
Sed (Diskussion | Beiträge) |
||
Zeile 3: | Zeile 3: | ||
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 | + | Über |
− | dem entsprechenden Publisher (als "Live" konfiguriert) ein Captcha-Bild | + | <source lang="xml"> |
− | erzeugt werden. | + | <img src="<sp:url uri="/ies/captcha"/>"> |
− | Falls man ein Formular absendet ohne einen IES-Handler zu verwenden | + | </source> |
− | (Email o.ä.) kann man wie folgt vorgehen: | + | kann bei einer Live-Seite in dem entsprechenden Publisher (als "Live" konfiguriert) ein Captcha-Bild erzeugt werden. |
− | Neben dem Bild gibt man ein Input-Text Feld an, dessen Name | + | Falls man ein Formular absendet ohne einen IES-Handler zu verwenden (Email o.ä.) kann man wie folgt vorgehen: |
− | SYS_captcha ist. Wird das Formular abgeschickt, so kann mit diesem | + | |
− | Aufruf EINMAL (wichtig) | + | 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) eprüft werden, ob die Eingabe dem Bild entsprach: |
− | <sp:if name="system.captcha.equals(${SYS_captcha})"></sp:if> | + | |
+ | <source lang="xml"> | ||
+ | <sp:if name="system.captcha.equals(${SYS_captcha})">true</sp:if> | ||
+ | </source> | ||
Hier ein vollständiges Beispiel: | Hier ein vollständiges Beispiel: | ||
Zeile 27: | Zeile 30: | ||
<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 71: | Zeile 74: | ||
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/> | ||
Version vom 30. Juli 2008, 14:26 Uhr
Beschreibung
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. 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 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) eprüft werden, ob die Eingabe dem Bild entsprach:
<sp:if name="system.captcha.equals(${SYS_captcha})">true</sp:if>
Hier ein vollständiges Beispiel:
<%@ 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>
Fall man Captcha bei Live-GUIs mit Handlern einbauen möchte muss man über des Login-Tag 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". 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:
<%@ 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="Wartung"
password="develop"
namespace="ies2_develop_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>
Eine funktionale Beschreibung mit Beispielen folgt.