SQL инжектиране

Автор: Peter Berry
Дата На Създаване: 13 Август 2021
Дата На Актуализиране: 22 Юни 2024
Anonim
ФУНКЦИЯ ПРЕОБРАЗОВАНИЯ СЕРВЕРА SQL
Видео: ФУНКЦИЯ ПРЕОБРАЗОВАНИЯ СЕРВЕРА SQL

Съдържание

Определение - Какво означава SQL инжектиране?

SQL инжектирането е компютърна атака, при която злонамерен код се вгражда в лошо проектирано приложение и след това се предава в резервната база данни. След това злонамерените данни създават резултати от заявки към база данни или действия, които никога не би трябвало да бъдат изпълнявани.


Въведение в Microsoft Azure и Microsoft Cloud | В това ръководство ще научите за какво се занимава компютърните изчисления и как Microsoft Azure може да ви помогне да мигрирате и стартирате бизнеса си от облака.

Techopedia обяснява SQL инжектиране

Нека преминем през пример за SQL инжектиране атака:

Приложение, осъществяващо банкови операции, съдържа менюта, които могат да бъдат използвани за търсене на детайли на клиента, като се използват точки от данни, като например социалния осигурителен номер на клиента. На заден план приложението извиква SQL заявка, която се изпълнява в базата данни, като предава въведените стойности за търсене, както следва:

ИЗБЕРЕТЕ име на клиент, телефон, адрес, дата_ов_здрав КЪДЕ social_sec_no = 23425

В този примерен скрипт потребителят въвежда стойността 23425 в прозореца на менюто на приложението, като иска от потребителя да въведе номера на социалното осигуряване. След това, използвайки стойността, предоставена от потребителя, SQL заявка се изпълнява в базата данни.

Потребител със знания за SQL може да разбере приложението и вместо да въведе единична стойност, когато бъде поискан номер на социалното осигуряване, въведе низ „23425 или 1 = 1“, който се предава на базата данни, както следва:

ИЗБЕРЕТЕ име на клиент, телефон, адрес, дата_ов_здрав КЪДЕ social_sec_no = 23425 или 1 = 1

Клаузата WHERE е важна, защото въвежда уязвимост. В база данни условието 1 = 1 винаги е вярно и тъй като заявката е зададена да връща клиентски данни за социално осигуряване (23425) или WHERE 1 = 1, заявката ще върне всички редове в таблицата, която не е била първоначално намерение.

Горепосоченият пример за атака на инжектиране на SQL е прост, но показва как се използва уязвимост, за да се подмами приложението за изпълнение на заявка или команда на база данни.

SQL инжекционните атаки могат да бъдат смекчени чрез осигуряване на подходящ дизайн на приложението, особено в модули, които изискват потребителско въвеждане, за да изпълняват заявки или команди на база данни. В горния пример приложението може да бъде променено, така че да приема само една цифрова стойност.