2016-05-19 4 views
0

So beschwerte sich der Security Scan über externe Umleitung.So lösen Sie externe Umleitung Angriff - von einem Sicherheitsscan auf der Website

Ich denke, es bc diese Zeile im Code war: header('location:'.$_POST['some_input']); es für einige internen Seiten gemeint war, kann aber durch externe URL missbraucht werden.
Ich habe gewickelt, dass in eine Redirect-Funktion, im Grunde wird es unsere url Basis

define('BASE_URL','https://example.com/'); 
function redirect($url) 
{ 
    header('location:'.BASE_URL.$url) 
} 

Dann wird der obige Code wird $this->redirect($_POST['some_input'])

ich auf diese Weise gedacht, selbst einen Angreifer make $, um es hinzuzufügen _POST ['some_input'] = 'angreifersite.com', es würde einfach zu einer schlechten URL umleiten.

Aber dann, wenn ich den Scan erneut gemacht habe, ist es genau die gleiche externe Redirect beschwert. Ist es immer noch nicht sicher oder die Scan-Software ist einfach egal, solange sie denken, dass Sie die Umleitung tun? Wenn dies der einzige Weg ist, um es zu lösen, erstellen Sie eine Zuordnung der Weiterleitungs-URL?

OWASP ZAP REPORT

+1

Es ist wahrscheinlich keine gute Idee, eine Weiterleitung zu URL zu machen, die Sie über POST erhalten. Möglicherweise möchten Sie Ihre Geschäftslogik nach Möglichkeit ändern. Darüber hinaus könnten Sie zumindest die POST-Eingaben bereinigen und auch Ihre Funktion ändern, um eine bedingte Weiterleitung durchzuführen (Umleitung nur, wenn der Domänenname Ihnen gehört oder etwas Ähnliches). – Maximus2012

+0

Anstatt dass die Weiterleitungs-URL vollständig aus der POST-Eingabe generiert wird, könnten Sie einen Teil der URL basierend auf dem POST-Wert generieren. So etwas wie '$ yoursite? Val = '. $ _ POST [' some_input '].'' – Maximus2012

+1

Welche Sicherheits-Scan-Software ist das? Bitte geben Sie die relevante Ausgabe aus dem Bericht an. Soweit ich weiß, könnte es sich auf XSS und nicht auf PHP beziehen. –

Antwort

0

wechselte ich auf eine URL-Zuordnung, Daten verdeckte Post stattdessen die Post-Daten zu verwenden, der direkt mit url. es löste das Problem. Ich denke, OWASP ist es egal, welche URL es ist. Solange es so aussieht, als würden Sie direkt von einem Post umleiten, wird es als unsicher angesehen.

Verwandte Themen