Nach OWASP Top 10 List ist eine Möglichkeit, unsichere direkte Objektreferenzen zu verhindern, nur indirekte Referenzen zu liefern. Dies sind künstliche Referenzen, die den direkten Referenzen (z.B. DB) auf dem Server zugeordnet sind. Das Mapping wird in der Sitzung gespeichert.Unsichere direkte Objektreferenzen und Suchmaschinen
Leider ist diese Lösung nicht sehr suchmaschinenfreundlich. Die vom Crawler gespeicherten Links wären in einer anderen Sitzung ungültig.
Gibt es eine Möglichkeit, dieses Problem zu umgehen? Gibt es neben dem Zuordnen von Referenzen oder dem Überprüfen des Objektzugriffs noch andere Lösungen?
Ich bin nicht sicher, ob wir das gleiche durch "unsichere Referenz" verstehen: Eine unsichere Referenz ist eine öffentliche Referenz, die leicht geändert werden kann, so dass sie auf ein nicht öffentliches Objekt zeigt. Z.B. Es gibt zwei Artikel auf einer Website: Artikel A mit ID 12 ist öffentlich, Artikel B mit ID 43 ist nicht öffentlich. Die öffentliche (und gecrawlte) URL/Artikel? Id = 12 verwendet eine unsichere Referenz, da sie leicht geändert werden kann, um Artikel 43 anzuzeigen, wenn keine weiteren Vorkehrungen getroffen werden. – raymi
id = 12 ist nicht unsicher, weil es öffentlich ist. id = 43 ist jedoch unsicher, da dieses Dokument nicht öffentlich ist. Beginnen Sie damit, die Seite auf einer öffentlichen Seite und einer nicht öffentlichen Seite aufzuteilen. Ihre öffentlichen Objekte sollten ihren eigenen ID-Bereich haben (z. B. eine Tabelle mit einem Primärschlüssel + die ID des Dokuments). Für die privaten Seiten können Sie nun die Techniken verwenden, die im Owasp-Dokument beschrieben sind, und Sie können zusätzliche Schutzmaßnahmen ergreifen, um zu verhindern, dass nicht autorisierte Benutzer auf diese Seite zugreifen. – Steven
Ok, ich verstehe deinen Standpunkt. Durch die Aufteilung des ID-Bereichs wird jedoch eine Art Zugangskontrolle eingeführt. Warum also sollte jemand indirekte Referenzen verwenden wollen, wenn er irgendeine Art von Zugriffskontrolle implementieren muss? Gibt es einen zusätzlichen Vorteil? – raymi