Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
[gelöst] jcaptcha in klassischer Domino- Web- Anwendung: Wie anfangen...
flaite:
Naja, so viel Mühe wars auch nicht.
3 Stunden vielleicht.
Falls Du das ausprobierst und Fragen hast, melde das einfach. Gibt keine dummen Fragen, insbesondere weil das kein "normales" Java mehr ist. Auch keine Raketen-Wissenschaft, einfach ein bischen Anwendung von Java-Reflection. Ab Samstag fall ich allerdings für 9 Tage hier aus, weil ich dann auf der devoxx in Antwerpen bin und der Termin Kalender da extrem dicht gedrängt ist.
Im besten Fall eröffnet das eine für einige vielleicht neue Perspektive wie man Java Open Source Bibliotheken benutzen kann.
Auf der UKLUG Konferenz hab ich darüber nachgedacht es beim Entwickler-Camp als Speaker zu versuchen. Problem ist halt nur, dass ich kein Domino Entwickler mehr bin. Hab an sowas gedacht wie "Automatisiertes Testen auf unterschiedlichen Ebenen für XPages und Domino Anwendungen", aber ich kann nicht mal XPages ;D
Vielleicht starte ich Ende Dezember noch mal durch.
Das hier könnte vielleicht auch als Basis für einen Vorschlag für einen Vortrag dienen:
"Was nicht passt, wird passend gemacht: Ein paar Chuck Norris Methoden, um Java Open Source Bibliotheken in Domino konfortabel zu nutzen"
Da bräuchte ich allerdings noch 2 oder 3 gute Beispiele.
Kann sein, dass ich Ende Dezember die Energie finde, um mir f. Vorschlag 1 das entsprechende Domino spezifische Know How zu verschaffen, um zu versuchen mit Rudy ins Geschäft zu kommen.
Tode:
Trotzdem: Danke... Ich habe mal kurz drübergeschaut und bin im Domino auf ein kleines Problem gestossen: Wenn ich den Code von Dir 1:1 in eine Java- Library und einen Agenten übernehme, dann kriege ich einen Sicherheits- Fehler (java.lang.reflect.ReflectPermission suppressAccessChecks). Den kann ich (zum testen) per Eintrag in die java.policy wegkriegen, aber interessant ist es dennoch, weil da eigentlich drin steht:
--- Code: ---// Standard extensions get all permissions by default
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.security.AllPermission;
};
--- Ende Code ---
und die libs liegen unter /lib/ext.
Ausserdem steht drin:
--- Code: ---/ Notes java code gets all permissions
grant codeBase "file:${notes.binary}/*" {
permission java.security.AllPermission;
};
--- Ende Code ---
Also wo da die Berechtigung fehlt sehe ich nicht wirklich... Aber zumindest läufts mal...
Tode:
Danke, danke, danke!!! Ich kriege mit einem modifizierten Agenten und mit Hilfe einer Base64- Encodierung das Bild direkt in den Browser geprinted. Jetzt muss ich mir nur noch überlegen, wo ich die Response zum Image zwischenlagere (wie Du schon erwähnt hast, haben wir ja keine Session, und ich setze auch keine xPages ein, um mir das in entsprechenden Session- Variablen zu cachen, aber auch das Problem löse ich noch. Wahrscheinlich liefere ich das Ergebnis gleich "verschlüsselt" an den Browser zurück, und lasse das entweder per Ajax- Request oder direkt im Browser "entschlüsseln" und mit der Usereingabe vergleichen. Dann kann zwar jemand, der den Quelltext liest, das ganz schnell "reverse engeneeren", aber es geht ja nur darum, Bots von der Seite fernzuhalten, nicht um ein Sicherheits- Feature. Dafür sollte es eigentlich reichen.
flaite:
Hört sich viel besser an, als die Lösung, die mir vorschwebte.
a) Bilder vorgenerieren, d.h. erstmal einen Vorrat von 1000 Bilder. Bilder in Unterverzeichnis von html, Pfad zu diesem Bild und richtige Antwort in Domino Dokumenten. Diese neu erzeugten Dokumente haben Status "ready state". Bei neu eintreffenden Usern, wird immer das oberste Dokument ausgeliefert. Ansicht sortiert nach letztem Speichern. User wird auch die Universal-ID des Dokuments geliefert und im Browser in ein hidden Feld geschrieben.
b) Wenn Bild ausgeliefert wird, ändert sich Status-Feld in Domino Dokument in "Waiting for Challenge". Nach ca. 5 Minuten wird das ungültig.
c) Wenn challenge für Bild korrekt oder falsch beantwortet, bzw. timeout, dann erhält Dokument wieder Status "ready state"
Vermutlich käm man da locker mit 1000 captchas aus. Bei Bedarf kann man immer nachgenenerieren. Eigentlich spricht nix dagegen die Bilder "wiederzuverwenden".
Deine Lösung hat weniger Zusatz-Ansichten, Dokumente für das captcha Thema. Deshalb ist sie vermutlich besser.
flaite:
Zu der Sicherheit: Gibts da nicht ein Häckchen beim Agenten (in dem popup artigen Fenster, wo Du den Namen des Agenten hinschreibst). Es gibt da eine radio box und 2 oder 3 sicherheitsstufe. Run with Administrator rights oder so ähnlich. Bin diesbezüglich allerdings ein wenig verunsichert.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln