Modul: appRIORI (Maklervertrag-Generator)¶
Stand
Code-Analyse vom 2026-04-22 gegen sachpool.de, WebEdition 9.2.3, PHP 8.3.
Zweck¶
appRIORI ist ein externer Dienst, der Maklervertrags-Dokumente generiert („in 3 Klicks zum Maklervertrag"). Sachpool hat eine SSO-Integration: der Vermittler klickt im Portal → wird transparent an appRIORI weitergeleitet mit übertragenen Makler- und Mandanten-Daten.
Zwei Aufrufpunkte:
- Als Vergleichsportal (Klasse
software-tools, Badge INKLUSIVE) - Als Service-Tool (Quicklink auf Dashboard)
Template¶
Ein einziges Haupttemplate:
| Tpl-ID | Pfad | ModDate |
|---|---|---|
| 194 | sachpool-portal/appriori/appriori.tmpl |
2022-06-27 |
Unter-Ordner sachpool-portal/appriori/ enthält nur dieses Template (plus evtl.
Helfer).
Einstiegspunkte¶
| Doc-ID | Pfad |
|---|---|
| — | /_login/vergleichsportale/appriori-570.php (über Objekt-Klasse software-tools id 570) |
| — | /_login/produkte/beratungsassistenten.php (Quicklink) |
Integrations-Mechanik¶
SSO via REST-API an https://ssl.app-riori.de/rest/rest.svc/auth/sso.
Daten-Mapping¶
Aus den $sach_*-Variablen (kommen aus authorization.tmpl) wird ein JSON-Request
zusammengebaut mit drei Blöcken:
$request = [
'auth' => [
'guid' => $api_key, // 🔴 hardcoded API-Key
'sponsorID' => $api_id, // 🔴 hardcoded (89520)
'rgnr' => $sach_ihk_nr, // Pflicht! IHK-Nummer
'typeID' => 4834, // Hardcoded
'fct' => 'ssochk',
],
'berater' => [ // Makler
'Anrede' => $sach_anrede,
'Vorname' => $sach_forename,
'Name' => $sach_surname,
'Name2' => $sach_firma, // Firmenname
'Strasse' => $sach_strasse . ' ' . $sach_nr,
'Ort' => $sach_ort,
'PLZ' => $sach_plz,
'eMail' => $sach_mail,
'Telefon' => $sach_tel,
'KdNr' => $sach_ihk_nr,
],
'mandant' => [ /* gleiche Felder nochmal */ ],
'document' => ['ID' => '4022'], // Hardcoded Dokument-Template
];
Fallback-Logik¶
Wenn Vermittlerdaten unvollständig sind:
- Anrede nicht
Herr/Frau→ „Firma" - Leerer
sach_surnameund leerersach_firma→ „Unbekannt" - Leere
sach_strasse→ „Unbekannt" - Leere
sach_plz→ „00000" - Leere
sach_ort→ „Unbekannt"
Pflichtfeld IHK-Nummer¶
if (strlen($rgnr) == 0) {
echo '<div>Fehler! Sie haben keine Registernummer hinterlegt.</div>';
// Abbruch — keine SSO-Anfrage
}
Ergebnis¶
Erfolg: API liefert redirect-URL → JS window.open(redirect, '_self').
Fehler: Text-Output + print_r($manage) + print_r($request) — 🔴
leakt API-Credentials und Request-Daten ins HTML (siehe Handlungsempfehlungen).
Bekannte Altlasten¶
→ interne Datei HANDLUNGSEMPFEHLUNGEN.md im Repo-Root
- 🔴 Hardcodierte Credentials (
$api_key,$api_id) - 🔴 Debug-Leak im Fehlerpfad (
print_rvon Request und Response) - 🟢 Auskommentierte TEST-Credentials im Template (unschön, aber keine aktiven Secrets)
Siehe auch¶
- Link-Modul —
$sach_*-Variablen - Vergleichsportale