Какво е SQL Injection ? |
||||
|
||||
|
|
||||
![]() ![]() ![]() |
В последно време се занимавам с SQL понеже незнам дали знам поне някаква теория реших да напиша статия, според мен (по четената теория)що е то SQL Injection и как всъщност работи и да проверя дали не съм в грешка на нещата. ЕТО: 1. браузъра изпраща HTTP Request към сървъра, на който се намира желания сайт 2. на сървъра тази заявка се обработва от HTTP сървъра ( който може да бъде Apache, IIS и т.н ). Ако заявката е към статичен HTML файл, то сървъра направо връща информация на браузъра. Ако обаче заявката е за динамична страница, която трябва да се генерира в момента ( а това са близо 95% от всички страници напоследък ) то: 3. HTTP сървъра извиква скриптовият интерпретатор - най-често това e PHP, но също така може да е ColdFusion, ASP, JSP и т.н.За да е максимално лесно и просто да се използва какъвто и да е език за програмиране и съответно интерпретатор е стандартизиран интерфейса между сървъра и интерпретатора - т. нар. CGI. Този стандарт също така описва начините за предаване на различни параметри към скриптовете, които трябва да генерират страницата - въщност точно това се случва с цялата информация ( и не само с нея ), която пишете по форми и полето в уеб-страниците - тя се изпраща като параметри на някой такъв скрипт и в резултат скрипта по някакъв начин ги обработва - записва, проверява и т.н. В много случаи обаче има нужда да се работи с големи обеми информация. Тогава повечето езици за програмиране не са най-удобното и производително решение, а се изпраща заявка към: 4. База данни. Всъщност по-пълното име трябва да е “сървър за управление на релационна база данни“. Сложничко, нали ? Най-често използваните сървъри при уебсайтовете са MySQL, но същата функция може да се изпълнява и от Oracle, MSSQL сървър, PostreSQL. Забелязвате ли повтарящото се “SQL” ? Това е името на стандартния протокол, с който можете да искате определена информация от базата данни ( например - “покажи ми всички потребители, родени след 1980 г.” ). Та PHP скрипта използва SQL, за да извлече нужната му информация от базата данни. Конкретната SQL заявка се съставя в зависимост от това, каква информация е необходима ( най-често с използването на същите онези параметри, предадени на PHP интерпретатора. ). След като SQL сървъра върне необходимата информация, скриптовия интерпретатор я обработва, генерира HTML страница, която бива изпратена от HTTP сървъра на браузера на клиента, изпратил заявката. Изглежда сложно и бавно, но обикновенно подобна заявка отнема милисекунди и вие на ден генерирате поне няколкостотин ( само отварянето на тази страница е завъртяло описаният цикъл няколко пъти ). SQL заявката, която ще изтрие цялата информация от дадена таблица в базата данни е “DROP TABLE <DBNAME>”. МОЛЯ АДМИНИСТРАТОРА ДА НЕ МИ СЕ КАРА!!! Просто питам! Така ли е или съм в грешка? БЛАГОДАРЯ ПРЕДВАРИТЕЛНО!!!!!!! |
|||
|
Това мнение е редактирано от napster на 29.02.2008 08:50
---------------------------
Потребител от: 25.02.08 | Всички уроци от napster | Всички скриптове от napster Шизофрения е когато в един форум общуваш сам със себе си под три различни ника!!! http://www.hidrostroitel.com/ http://scullboxteam.org/ |
||||
|
|
||||
|
||||
|
|
||||
![]() |
?!?# И какво е това? Къде се говори за SQL Injection? Каква е идеята на този пост? И какво питаш та администратора ти се кара? |
|||
|
---------------------------
Потребител от: 17.02.05 | Всички уроци от PureEvil | Всички скриптове от PureEvil Liberate Tu Temet Ex Inferis |
||||
|
|
||||
|
|
||||
![]() ![]() ![]() |
Общо: текста който съм дал - товали представлява SQL Injection? Никъде не се говори, все пак някъде трябваше да питам, защото при опита си да науча какво е, може някъде да съм допуснал грешка и да имам грешна представа! Знанията все пак трябва да са правилни! Идеята е да разбера дали съм с грешна представа за SQL Injection и дали след толкова четене все пак съм започнал малко да го разбирам!!! Та молбата ми е да се прочете внимателно горния текст и ако може да ми се отговори на въпроса - "ТОВА ЛИ ПРЕДТАВЛЯВА" SQL Injection? като теория. |
|||
|
Това мнение е редактирано от napster на 29.02.2008 12:41
---------------------------
Потребител от: 25.02.08 | Всички уроци от napster | Всички скриптове от napster Шизофрения е когато в един форум общуваш сам със себе си под три различни ника!!! http://www.hidrostroitel.com/ http://scullboxteam.org/ |
||||
|
|
||||
|
|
||||
![]() |
НЕ. SQL Injection => става дума за нещо при заявките към ДБ-то. Примерно при MySQL ' е специален символ. Ако ми позволиш на мен като потребител да го ползвам в данни коото се подават към SQL сървъра значи има SQL Injection. Има хиляди статии по въпроса и то на български. Теорията примерно може да се формулира като: възможност за изпълняване на SQL код от потребителя, без разрешението на разработчика. |
|||
|
Това мнение е редактирано от PureEvil на 29.02.2008 14:25
---------------------------
Потребител от: 17.02.05 | Всички уроци от PureEvil | Всички скриптове от PureEvil Liberate Tu Temet Ex Inferis |
||||
|
|
||||
|
|
||||
![]() ![]() ![]() |
ОК. Наистина става въпрос за заявките, но не бях сигурен че е така и очевидно не съм разбрал много добре SQL Injection. Добре, а може ли да се правят заявки и по друг начин, освен този? А къде, ако мога да попитам, мога да ги намеря тези статий на български, за да ги попрехвърля малко (да ги прочета)? И още нещо: "възможност за изпълняване на SQL код от потребителя, без разрешението на разработчика"Както каза - А има ли вероятност разработчика да е предотвратил предварително тази възможност за заявка? |
|||
|
Това мнение е редактирано от napster на 29.02.2008 15:14
---------------------------
Потребител от: 25.02.08 | Всички уроци от napster | Всички скриптове от napster Шизофрения е когато в един форум общуваш сам със себе си под три различни ника!!! http://www.hidrostroitel.com/ http://scullboxteam.org/ |
||||
|
|
||||
|
|
||||
![]() |
Статий не знам кой е. Виж ако питаш за статии: google.bg или по хилядите сайтове в българското уеб пространсотво с уроци. |
|||
|
---------------------------
Потребител от: 17.02.05 | Всички уроци от PureEvil | Всички скриптове от PureEvil Liberate Tu Temet Ex Inferis |
||||
|
|
||||
|
|
||||
![]() ![]() ![]() |
OK. |
|||
|
---------------------------
Потребител от: 25.02.08 | Всички уроци от napster | Всички скриптове от napster Шизофрения е когато в един форум общуваш сам със себе си под три различни ника!!! http://www.hidrostroitel.com/ http://scullboxteam.org/ |
||||
|
|
||||
|
|
||||
![]() ![]() |
Цитат от napster666@29.02.2008 15:10: ОК. Наистина става въпрос за заявките, но не бях сигурен че е така и очевидно не съм разбрал много добре SQL Injection. Добре, а може ли да се правят заявки и по друг начин, освен този? А къде, ако мога да попитам, мога да ги намеря тези статий на български, за да ги попрехвърля малко (да ги прочета)? И още нещо: "възможност за изпълняване на SQL код от потребителя, без разрешението на разработчика"Както каза - А има ли вероятност разработчика да е предотвратил предварително тази възможност за заявка? ![]() ЦЯЛА ЗЛАТНА МИНА: http://forums.bgdev.org/index.php?showtopic=14641 http://insecurebg.org/viewtopic.php?t=44&sid=57c6adf79a29f188e8cfb55a64cb409e http://en.wikipedia.org/wiki/SQL_injection http://www.unixwiz.net/techtips/sql-injection.html Има да ги четеш 1 ден... Готов си! |
|||
|
---------------------------
Потребител от: 20.12.06 | Всички уроци от zipopro | Всички скриптове от zipopro Лъчезар Петров Лечев - 14 - Стара Загора - Уеб Програмист Винчета, болчета гайкии...! |
||||
|
|
||||
|
|
||||
![]() ![]() ![]() |
Много ти благодаря за отговора, въпреки че тези от Wikipediq съм ги чел, но нищо - щом несъм ги разбрал пак ше ги прочета!!! |
|||
|
---------------------------
Потребител от: 25.02.08 | Всички уроци от napster | Всички скриптове от napster Шизофрения е когато в един форум общуваш сам със себе си под три различни ника!!! http://www.hidrostroitel.com/ http://scullboxteam.org/ |
||||
|
|
||||
|
|
||||
![]() ![]() |
ползвай съхранени процедури ,там вече параметъра се инициялизира като такъв и няма да се приеме като запазен знак, а ще върне грешка примерно. |
|||
|
---------------------------
Потребител от: 15.02.08 | Всички уроци от Filip_n | Всички скриптове от Filip_n |
||||
|
|
||||
| 1 посетител чете тази тема (0 потребители и 1 гост) | |||
|
Активни потребители:
---
|
|||
| |||
Още по темата:
php форум,
flash форум,
html форум,
it форум,
seo форум,
vista форум,
pc форум,
css форум,
java форум,
mysql форум,
дизайн форум













