Video: (THRIVE Nederlands - Subtitled) GEDIJEN: Wat Ter Wereld Zal Ervoor Nodig Zijn? 2024
U denkt misschien dat als u kunt bepalen wie gegevens in een SQL-tabel ziet, maakt, wijzigt en wist, u ' goed beschermd. Tegen de meeste bedreigingen, dat ben je. Een goed geïnformeerde hacker kan echter nog steeds het huis doorzoeken met behulp van een indirecte methode.
Een correct ontworpen relationele database heeft referentiële integriteit, , wat betekent dat de gegevens in één tabel in de database consistent zijn met de gegevens in alle andere tabellen. Om referentiële integriteit te waarborgen, passen databaseontwerpers beperkingen toe op tabellen die de gegevens beperken die gebruikers in de tabellen kunnen invoeren.
Maar hier is het nadeel van die bescherming: als u een database hebt met referentiële integriteitsbeperkingen, kan een gebruiker mogelijk een nieuwe tabel maken die een kolom in een vertrouwelijke tabel als een buitenlandse sleutel gebruikt. Die kolom dient dan als een link waardoor iemand mogelijk vertrouwelijke informatie kan stelen. Oeps.
Stel bijvoorbeeld dat u een bekende Stockanalist bent van Wall Street. Veel mensen geloven in de nauwkeurigheid van uw aandelenkeuze, dus wanneer u een voorraad aan uw abonnees aanbeveelt, kopen veel mensen die aandelen en neemt de waarde toe.
U bewaart uw analyse in een database, die een tabel met de naam FOUR_STAR bevat. Uw belangrijkste aanbevelingen voor uw volgende nieuwsbrief staan in die tabel. Uiteraard beperkt u de toegang tot FOUR_STAR zodat het woord niet uitlekt voor het beleggerspubliek voordat uw betalende abonnees de nieuwsbrief ontvangen.
U bent echter nog steeds kwetsbaar als iemand anders een nieuwe tabel kan maken die het voorraadnaamveld van FOUR_STAR als een externe sleutel gebruikt, zoals wordt getoond in het volgende voorbeeld:
CREËER TABEL HOT_STOCKS (voorraadkarakter (30) REFERENTIES FOUR_STAR);
De hacker kan nu proberen de naam van elk aandeel op de New York Stock Exchange, American Stock Exchange en NASDAQ in de tabel in te voegen. De invoegtoepassingen die slagen, vertellen de hacker welke aandelen overeenkomen met de aandelen die u in uw vertrouwelijke tabel noemt. Het duurt niet lang voordat de hacker uw volledige aandelenlijst heeft opgehaald.
U kunt uzelf beschermen tegen hacks zoals die in het vorige voorbeeld, door heel voorzichtig te zijn met het invoeren van instructies die lijken op het volgende:
SUBSIDIE VAN REFERENTIES (voorraad) OP FOUR_STAR NAAR SECRET_HACKER;
Dit is overduidelijk overdreven. Je zou nooit een soort van toegang tot een kritieke tafel verlenen aan een onbetrouwbaar persoon, toch? Niet als je je realiseerde wat je aan het doen was.Hackers zijn tegenwoordig echter niet alleen technisch slim. Ze zijn ook meesters in het misleiden van mensen om te doen wat ze normaal niet zouden doen. Opwaarderen tot volledige waarschuwing wanneer een goede spreker iets vermeldt dat gerelateerd is aan uw vertrouwelijke informatie.
Vermijd het verlenen van rechten aan mensen die ze mogelijk misbruiken. Toegegeven, mensen komen niet met garanties gedrukt op hun voorhoofd. Maar als u uw nieuwe auto niet aan een persoon zou lenen voor een lange reis, zou u hem waarschijnlijk ook niet het VERLOF aan een belangrijke tafel moeten verlenen.
Het voorgaande voorbeeld biedt een goede reden om zorgvuldig toezicht te houden op het recht REFERENCES. Hier zijn twee andere redenen waarom u zorgvuldige controle van REFERENTIES zou moeten handhaven:
-
Als de andere persoon een beperking in HETE VOORRADEN specificeert door een RESTRICToptie te gebruiken en u probeert om een rij uit uw lijst te schrappen, vertelt DBMS u dat u kunt Niet omdat dit in strijd zou zijn met een referentiële integriteitsbeperking.
-
Als u de opdracht DROP wilt gebruiken om uw tabel te vernietigen, moet u de andere persoon eerst de beperking (of de tabel) van DROP laten verwijderen.
Waar het op neerkomt: een andere persoon inschakelen om integriteitsbeperkingen voor uw tabel op te geven, introduceert niet alleen een potentiële inbreuk op de beveiliging, maar betekent ook dat de andere gebruiker u soms in de weg loopt.