CodeIgniter 3, входен клас
Класът на въвеждане служи за две цели:
- Глобална предварителна обработка на вход за сигурност.
- Предоставяне на помощни методи за извличане на вход и предварителна обработка.
Този клас се инициализира от системата автоматично, така че няма нужда да го извиквате ръчно.
Филтриране на входни данни
Филтриране на ограничения за сигурност
Методът за филтриране на ограничения за сигурност се извиква автоматично, когато се създава нов контролер. Той прави следното:
- Ако $ config ['allow_get_array'] е FALSE (по подразбиране е TRUE), унищожава глобалния GET масив.
- Унищожава всички глобални променливи, ако register_globals е активиран.
- Филтрира GET/POST/COOKIE индекси на масиви, позволяващи само букви и цифри (и няколко други).
- Осигурява XSS (Cross-site Scripting Hacks) филтриране. Може да се активира глобално или при поискване.
- Стандартизира символите за нов ред в PHP_EOL (\ n в Unix-подобни операционни системи, \ r \ n в Windows). Това е адаптивно.
XSS филтриране
Класът на въвеждане има възможност за автоматично филтриране на данни, за да се предотвратят атаки на скриптове между сайтове. Ако искате филтърът да се стартира автоматично всеки път, когато получава POST или COOKIE данни, можете да го активирате, като отворите файла си application/config/config.php и настроите:
Моля, обърнете се към документацията на вашия клас за сигурност за повече информация относно използването на XSS филтриране във вашето приложение.
„Global_xss_filtering“ е СТРАНЕН и се съхранява само за обратна съвместимост. XSS избягването трябва да се извършва на изход, а не на вход!
Достъп до данни от формуляр
Използване на данни POST, GET, COOKIE или SERVER
CodeIgniter се предлага с помощни методи, които позволяват извличане на POST, GET, COOKIE или SERVER елементи. Основното предимство на използването на предоставените методи не е директно извличане на елемента ($ _POST ['нещо']), а проверка на елемента за задаване и връщане на NULL. Това ви позволява удобно да използвате данните, без да се налага да проверявате елемента за съществуване. С други думи, вече сте правили нещо подобно:
С вградените методи на CodeIgniter можете просто да направите това:
Основните методи са:
Използване на въвеждане на поток php: //
Ако искате да използвате PUT, DELETE, PATCH или други екзотични методи за заявка, тогава те могат да бъдат достъпни само чрез специален входен поток, който може да бъде прочетен само веднъж. Не е толкова лесно, колкото четенето от масива $ _POST, защото той (масивът) винаги ще съществува и можете да работите с него, без да се притеснявате, че имате само една заявка за всички POST данни.
CodeIgniter се погрижи за това и можете да четете данни от php: // вход поток по всяко време с помощта на функцията $ raw_input_stream:
Също така, ако входният поток се съдържа в данните $ _POST, можете да получите достъп до неговите стойности, като извикате метода input_stream ():
Подобно на други методи като get () и post (), ако заявените данни не бъдат намерени, те ще върнат NULL и можете да решите дали да обработите данните чрез функцията xss_clean (), като предадете булева стойност като втори параметър:
Можете да използвате method (), за да разберете какви данни четете: PUT, DELETE или PATCH.
Настройки на класа
Свойство само за четене, което ще върне php: // въведени данни такива, каквито са.
- индекс $ (смесено) - име на параметър POST
- $ xss_clean (boolean) - Дали да се приложи XSS филтриране