Po prostu znalazłem kilka niepokojących kodów jednocześnie w klasycznym kodzie ASP, a także w PHP.Bezpieczeństwo: co może być nie tak, gdy użytkownicy mogą wymieniać zmienne sesji?
Klasyczne ASP:
Dim id
id = request.form("id")
Session(id) = id
PHP
$_SESSION[$_GET["id"]] = $_GET["id"];
Więc, co może pójść źle tutaj? Uwaga, oczywiście usunę je i wykorzystam lepszy przepływ pracy.
EDYCJA: Oczywistymi problemami mogą być SQLi, XSS, nadpisywanie istniejących i niezbędnych zmiennych sesji. Tak naprawdę nie wiem, jakie są wewnętrzne działania tego języka w obsłudze zmiennych sesyjnych.
EDYCJA 2: Nie martwię się wartościami zmiennej sesji tak bardzo, jak jestem zainteresowana ich nazwaniem. Ciekawe, czy jest coś szalonego, co można zrobić z dowolnymi nazwami zmiennych.
Zależy co robisz następnie z '$ _SESSION [$ _ GET [ "id"]]' .... jeśli kiedykolwiek go echo i zawiera coś w stylu '' script src = "http://malevolent.com/nasty/malware.js"> '.... Pozostawiam resztę twojej wyobraźni –
Treść sesji może z pewnością zostać wykorzystana do XSS, SQLi i innych nieprzyjemnych exploitów do dezynfekcji danych wejściowych. Jestem bardziej ciekawy, co można zrobić z możliwością nazywania własnych zmiennych w czyimś kodzie. – TheMonarch