Video: Hur man lägger plastmatta eller våtrumsmatta i badrum 2024
Du kanske tror att om du kan styra vem som ser, skapar, ändrar och raderar data i ett SQL-bord, är väl skyddad. Mot mest hot är du. En kunnig hackare kan dock fortfarande ransacka huset genom att använda en indirekt metod.
En korrekt utformad relationsdatabas har referensintegritet, vilket innebär att data i en tabell i databasen överensstämmer med data i alla andra tabeller. För att säkerställa referensintegritet tillämpar databasdesigners begränsningar till tabeller som begränsar datanvändarna kan komma in i tabellerna.
Men här är nackdelen med det skyddet: Om du har en databas med referensintegritetsbegränsningar kan en användare eventuellt skapa ett nytt bord som använder en kolumn i en konfidentiell tabell som en främmande nyckel. Den kolumnen tjänar sedan som en länk genom vilken någon eventuellt kan stjäla konfidentiell information. Hoppsan.
Tala om att du är en berömd Wall Street aktieanalytiker. Många människor tror på exaktheten i ditt lagerval, så när du rekommenderar ett lager till dina abonnenter köper många människor det, och värdet ökar.
Du håller din analys i en databas, som innehåller ett bord som heter FOUR_STAR. Dina bästa rekommendationer för ditt nästa nyhetsbrev finns i den tabellen. Naturligtvis begränsar du åtkomsten till FOUR_STAR så att ordet inte läcker ut till investeraren innan dina betalande abonnenter får nyhetsbrevet.
Du är dock fortfarande sårbar om någon annan kan skapa ett nytt bord som använder fältnamnfältet FOUR_STAR som en främmande nyckel, som visas i följande kommando exempel:
CREATE TABLE HOT_STOCKS (Lagerkaraktär (30) REFERANSER FOUR_STAR);
Hackern kan nu försöka infoga namnet på varje aktie på New York Stock Exchange, American Stock Exchange och NASDAQ i tabellen. De inlägg som lyckas berätta för hackaren vilka lager matchar de bestånd som du heter i ditt konfidentiella bord. Det tar inte lång tid för hackaren att extrahera hela din lista över aktier.
Du kan skydda dig från hack som den som i det föregående exemplet genom att vara mycket försiktig med att skriva in uttalanden som liknar följande:
GRANT REFERENCES (Stock) ON FOUR_STAR TO SECRET_HACKER;
Det här är tydligt en överdrift. Du skulle aldrig ge någon form av tillgång till ett kritiskt bord till en otillförlitlig person, skulle du? Inte om du insåg vad du gjorde.Dock är hackare idag inte bara smart tekniskt. De är också mästare av vilseledande människor att göra vad de vanligtvis inte skulle göra. Rampa upp till full varning när en smidig talare nämner någonting som är relaterat till din konfidentiella information.
Undvik att ge privilegier till personer som kan missbruka dem. Visst kommer människor inte med garantier som skrivs ut på pannan. Men om du inte skulle låna din nya bil till en person under en lång resa, borde du förmodligen inte ge honom referensrätten på ett viktigt bord heller.
Det föregående exemplet erbjuder en bra anledning att behålla noggrann kontroll över referensrätten. Här är två andra anledningar till varför du bör behålla noggrann kontroll över REFERENSER:
-
Om den andra personen anger ett hinder i HOT STOCKS med hjälp av ett RESTRICT-alternativ och du försöker radera en rad från ditt bord berättar DBMS dig att du kan 't, för att göra det skulle bryta mot en referensintegritetsbegränsning.
-
Om du vill använda DROP-kommandot för att förstöra ditt bord, finner du att du måste få den andra personen att förstöra hans begränsning (eller hans bord) först.
Den nedersta raden: Att tillåta en annan person att ange integritetsbegränsningar på ditt bord introducerar inte bara ett potentiellt säkerhetsbrott utan innebär också att den andra användaren ibland kommer i vägen.