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?
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
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
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. –