[58107] in SAPr3-news
Re: Passwort mit " =?ISO-8859-1?Q?=28Einf=FChrungszeichen=29=2E_?=
daemon@ATHENA.MIT.EDU (Tibor Gerke)
Wed Sep 13 17:37:36 2006
To: sapr3-news@mit.edu
Date: Wed, 13 Sep 2006 23:37:08 +0200
From: Tibor Gerke <tibor.gerke@gmx.de>
Message-ID: <45087a06$0$18479$9b4e6d93@newsspool3.arcor-online.net>
Hallo simon,
simon.bolek@web.de wrote:
> So, ich habe es jetzt versucht mit vielen Sniffers zu sniffen, aber ich
> sehe da kein Passwort:(
> any ideas?
Das Passwort wird ab 4.7 verschlüsselt übertragen, zumindest steht das
in der RFCSDK Doku (kann man mit der SAPGUI installieren) sehr
verschwommen drin.
Ich glaube nicht, dass der Fall mit einem Anführungszeichen im Passwort
vorgesehen ist. Mit dem Hinweis 129543 wurde das Einschliessen von
Parametern mit "..." eingeführt, damit die Sonderzeichen ',' oder ';'
oder ' ' im Usernamen benutzt werden können. Die librfc32.dll scheint
seit dann ="..." parsen zu können, aber das aufrufende Programm muss
die Maskierung mit "..." vornehmen.
Die OCX Controls (VB) scheinen das in der Art auf PASSWD= anzuwenden:
Wenn String ',' oder ';' oder ' ' enthält, setze Wert in "..."
Daher funktionieren oder auch nicht folgende Passworte unter VB mit
den OCX Controls:
Passwd: FOO BAR -> geht, weil PASSWD="FOO BAR"
Passwd: FOO" BAR -> geht nicht, weil PASSWD="FOO" BAR"
Passwd: FOO"BAR -> geht, weil PASSWD=FOO"BAR
In der RFCSDK Doku steht folgender Satz für die Connect_param:
Pay attention that the ID's are not case-sensitive but the values are
case-sensitive and must be set in "..." if blanks are included.
Der JCO scheint grundsätzlich die Werte immer in "..." zu übergeben,
daher funktioniert das Passwort FOO"BAR nicht.
PASSWD=BAR\"FOO im Connect_param ohne "..." sollte funktionieren,
hilft aber nur für diesen speziellen Fall.
Für den Usernamen kann man das ähnlich durchspielen:
User: FOOBAR -> geht
User: FOO BAR -> geht
User: FOO" BAR -> geht nicht
User: FOO"BAR -> geht nicht
weil die OCX Controls wohl grundsätzlich den User in "..." setzen.
In der *.trc steht für FOO" BAR folgendes:
>>> RfcOpenEx ...
Got following connect_param string:
USER=FOO BAR"=CLIENT=000 LANG=EN PASSWD=******* SYSNR=00
ASHOST=tr1.r3.ebydos.local ICCE=1 TRACE=1 GETSSO2=1
Mit dem Programm srfctest.exe aus dem RFCSDK lässt sich aber eine
Verbindung mit dem Usernamen FOO"BAR herstellen, weil das Programm
srfctest.exe keine "..." setzt, also wieder USER=FOO"BAR übergibt.
Der Algorithmus in der librfc32.dll arbeitet wohl so:
- wenn das erste Zeichen hinter dem = ein " ist,
lese bis zum nächsten "
- wenn das erste Zeichen hinter dem = kein " ist,
lese bis zum nächsten Leerzeichen
Das SAPGUI Protokoll scheint ohne RfcOpenEx auszukommen oder es ist
cleverer gelöst. Dort funktioniert jede Kombination.
ciao
Tibor