2010-12-07 3 views
0

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?

Antwort

2

Sie beschreiben ein Problem, das nicht :-)

Alles existiert, die eine Suchmaschine kriechen können, müssen und sehen, hat öffentlich zu sein, weil alles, was eine Suchmaschine sehen kann, kann durch zu sehen jeder. Für Daten, die öffentlich sein sollen - per Definition - kann die Objektreferenz niemals unsicher sein. Unsicher bedeutet, dass es geschützt werden soll.

Wenn Sie dies in Frage stellen, machen Sie einen Schritt zurück und betrachten Sie Ihre Daten genau. Wenn es crawlable sein muss, warum versuchen Sie es zu schützen? Wenn es geschützt werden sollte, warum liefern Sie es an Suchmaschinen.

+0

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

+0

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

+0

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