Ik ben bezig om een api te maken voor ons zelf en maakt gebruik van soap.
Op de soap server heb ik de volgende code welke een fout terug stuurd als de gegevens niet kloppen.
public function UsernameToken($username, $password, $hash, $remote_adr) {
$ua = new UserAuth();
$this->_authenticated = $ua->validateCredentials($username, $password, $hash, $remote_adr);
if( $this->_authenticated == false ) {
throw new SoapFault( '1', 'Incorrecte gegevens' );
}
}
wat ik eigenlijk wil is dat ik precies een error kan aangeven wat er niet klopt of de username of het wachtwoord nu vangt 1 error bericht alle 4 de invoer opties af.
Ik heb SOAP ervaring, echter nietmet de auth-method die je gebruikt.
Maar ik weet wel dat het security technisch niet aan te raden is om een gedetailleerde foutmelding terug te sturen bij een gefaalde login poging! Zo kan een hacker namelijk heel makkelijk te weten komen of de username(s) bestaan, dan hoeft hij alleen het wachtwooord nog te raden. Eigenlijk geef je hem dus op die manier toegang tot je leden lijst...
dat is ook de reden dat ik een md5 + salt hash code mee laat geven deze code word door ons gegenereerd en tevens wordt de $_SERVER['REMOTE_ADDR'] ook mee gestuurd enkel onze klanten kunnen deze invoeren in het systeem dus wat betreft beveiliging zit dat wel goed maar het is zo wel lastig voor de klanten om te zoeken waar evt de fout zit
dat is ook de reden dat ik een md5 + salt hash code mee laat geven deze code word door ons gegenereerd en tevens wordt de $_SERVER['REMOTE_ADDR'] ook mee gestuurd enkel onze klanten kunnen deze invoeren in het systeem dus wat betreft beveiliging zit dat wel goed maar het is zo wel lastig voor de klanten om te zoeken waar evt de fout zit
Dan ben je wel de enige gast in de wereld die dat doet :)
[quote="Daan Baars op 03/08/2010 21:53:28"]
dat is ook de reden dat ik een md5 + salt hash code mee laat geven deze code word door ons gegenereerd en tevens wordt de $_SERVER['REMOTE_ADDR'] ook mee gestuurd enkel onze klanten kunnen deze invoeren in het systeem dus wat betreft beveiliging zit dat wel goed maar het is zo wel lastig voor de klanten om te zoeken waar evt de fout zit
Dan ben je wel de enige gast in de wereld die dat doet :)
[/quote]
Niet helemaal ik heb dit al bij diverse partijen gezien het geeft ook een grote waarde aan de veiligheid
[size=xsmall]Toevoeging op 04/08/2010 00:04:06:[/size]
Aad B op 03/08/2010 22:19:23
Gebruik altijd 'Access Denied' ipv 'Incorrecte gegevens'
Heel gebruikelijk op autorisatie.
Ja ok dat deel ik met je maar welke van de 4 variable klopt dan niet dat is nu net wat ik ken baar wil maken
Hoe kunnen wij ruiken hoe jouw authenticatie methode er uit ziet?
Je moet in de authenticatie methode een status terug geven, als je het echt wilt. Een bepaalde return waarde die niet true/false is, maar bijvoorbeeld 1 als het goed is, -1 voor fout pass, -2 voor fout user, etc. Dit los je dan natuurlijk netjes op met een stel define's.
Dat is zomaar een voorbeeldje, het kan op verschillende manieren opgelost worden natuurlijk.
Of bijvoorbeeld: statuscode: -8 staat voor algemene fout zie details voor melding... en dan in je status bericht de foutmelding. Andere optie is dat je in je wsdl een complex type maakt en dan kan je complex terug sturen met alle fouten die je wenst terug te sturen..
Of bijvoorbeeld: statuscode: -8 staat voor algemene fout zie details voor melding... en dan in je status bericht de foutmelding. Andere optie is dat je in je wsdl een complex type maakt en dan kan je complex terug sturen met alle fouten die je wenst terug te sturen..
Ik had het nu over de coding; niet over hoe SOAP het terug geeft.
Het geven van fouten hoor, in mijn ogen, namelijk via een SOAPFault te gaan. Buiten je gegeven WSDL om.
Tenminste, de SOAPServer die ik draai (ook in WSDL mode, ook zelfgemaakt), doe ik bij fouten gewoon een SOAPFault() throwen.
Dat het zou moeten kunnen wist ik wel. Ben nu weer een paar dagen aan het stoeien geweest maar kom niet echt verder. Kan iemand me mischien in de juiste richting sturen ?