Frage

Zum Beispiel:. http://stackoverflow.com/questions/396164/exposing-database-ids-security-risk und http://stackoverflow.com/questions/396164/blah-blah laden die gleiche Frage

(Ich denke, die DB-ID der Tabelle Fragen ist? Ist das Standard in ASP.NET?)

Was sind die Vor- und Nachteile dieser Art der Regelung in Ihrem Web-App?

War es hilfreich?

Lösung

Nun, für eine einfache ids sind in der Regel sequentiell, also ist es ziemlich einfach zu erraten und andere Daten aus der Anwendung abgerufen werden.

laden JSON zur Laufzeit statt dynamisch über AJAX https://stackoverflow.com/questions/395858/doesnt-matter-what-I- typ hier

Nun, gesagt haben, dass die auch als Bonus angesehen werden könnte, weil niemand in ihrem rechten Verstand ihre ganze Sicherheit Scharnier auf der Tatsache machen würde, dass Sie auf einen Link klirren, um Ihre sichere Daten zu erhalten und damit leicht Auffindbarkeit der Daten könnte gut sein.

Allerdings ist ein Punkt ist, dass man irgendwann ist gehen, um Ihre Datenbank indizieren, etwas, das die alte URL ungültig wäre schlecht, wenn aus keinem anderen Grunde, dass Motoren noch alte Links haben würde Suche macht.

Auch hier auf SO ganz normal ist es Links zu verwenden, wie dies auf andere Fragen, so dass, wenn sie irgendwann wollen die Dinge neu indizieren und somit neu zu nummerieren (oder GUID bewegen), werden sie immer noch die alte Struktur zu halten haben und ids.

Nun, dies ist wahrscheinlich jemals benötigt passieren oder werden? Wahrscheinlich nicht.

Ich würde nicht zu viele Sorgen darüber, nur Ihre Sicherheit bauen, als ob jeder Einstiegspunkt für Ihre Anwendung bekannt ist, und es sollte keine Probleme geben.

Andere Tipps

  1. Die Datenbank-ID wird verwendet, um die Frage in der Datenbank nachzuschlagen. Es ist numerische das heißt: schnell. Wenn Sie es verlassen würden aus hatte man den Titel zum Nachschlagen, die viel langsamer ist.

  2. Die Frage selbst ist Teil der URL es „friendly Suchmaschine“ zu machen. Es wird höher g gewählt werden ** gle etc.

Pro:

  • Super einfach, die Seite Informationen abzurufen. Nehmen Sie die ID, rufen Sie die Datenbank, Viola. Ihre Tabelle wird (soll) indiziert wird diese Lookup machen super schnell.
  • Garantiert eindeutige URL.

Con:

  • IDs in Ihrem System wird öffentlich angezeigt. Kein Problem, in einem öffentlich zugänglichen System wie SO. Jedoch kann eine geeignete Sicherheitsmaßnahmen am hinteren Ende machen dies kein Problem, auch auf empfindlichen Systemen.
  • Hässliche URLs. 6+ stellige Zahlen sind nur schwer zu merken, und macht es schwieriger, Seiten zu unterscheiden, wenn die Zahl alles, was sie identifiziert ist. Dies kann auch SEO Folgen, wie URLs mit mehr relevant und gut strukturierten Informationen ist in der Regel besser eingestuft. SO kompensiert durch die Post Name in der URL als auch die Bereitstellung. Während ich kann immer noch nicht einen bestimmten Beitrag zu meinem Kumpel beim Mittagessen rattert, kann ich immer noch in dem Browser-History findet es einfacher.
  • Langsamer Lookups. Doing Textsuche in einer Datenbank ist in der Regel langsamer.

Aber denken Sie daran in einer Gemeinschaft wie diese gibt es eine höhere (obwohl immer noch minimal) Chance auf die gleiche Frage Name zugleich geschrieben wird, die Dinge brechen würde, also eine Art eindeutige Identifizierung angewendet werden muss, IDs sind wahrscheinlich ganz logisch in dem Zusammenhang, dass diese bestimmte Web-Anwendung in entwickelt wurde.

Ich glaube nicht, dass es eine schlechte Praxis, und ziemlich häufig, es in ASP.NET und anderen Frameworks zu tun. Wie @lassevk gesagt, wenn Ihre Sicherheit davon abhängt, dann müssen Sie einige weitere Kontrollen dort in (können Benutzer X aufzeichnen Y erhalten), aber es kommt auf die SEO-Freundlichkeit der URLs für öffentliche Websites.

Zum Beispiel SO die URLs sind recht freundlich:

  

Vor-und Nachteile der Verwendung von DB-ID in der URL?

Google Raten Informationen am Anfang der URL höher als am Ende, so hat es wie folgt aussehen:

  

https://stackoverflow.com/pros -and-Wider-of-mit-db-id-in-the-url / q / 407.120

sollte ein höheres Ranking für erhalten "Vor-und Nachteile von db-ID in der URL mit" . Es ist nicht der einzige Faktor, aber es ist durchaus ein ein-Dur - im Format Amazon suchen, sie tun es für einen sehr guten Grund:

  

http://www.amazon.com/Maverick-Ricardo-Semler/dp / 0712678867

     

http: // server / Buchname / dp / Buch-ID

Wordpress tut es wie folgt aus:

  

http: // server / yyyy / mm / dd / name-of -die-post

Wenn Sie jedoch zwei Pfosten am selben Tag namens „foo“ zu veröffentlichen, erhalten Sie:

  

http: // server / yyyy / mm / dd / foo

     

http: // server / yyyy / mm / dd / foo2

die Butzen (foo / foo2) ist kein PK, aber es ist so einzigartig über die Beiträge Tabelle beibehalten.

Ich denke, die ID in der URL setzen ist kein Problem, es sei denn, Ihre URL ist eine GUID! Viel zu lang und schwer zu tippen. Wenn es ein int ist, oder eine Art von kurzem guid (zB 6-8 Zeichen), dann sollte es kein Problem sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top