* Не вярвайте на Environment Variables
Публикувано на 07 декември 2008 в раздел ПТСК.
На няколко пъти споменахме, че Environment Variables не трябва да бъдат използвани като достоверен източник на информация. Време е да добавим още нещо – използването им може да доведе и до пробиви в сигурността. Една статия от seancoates.com заслужава значително внимание.
Трябва да отбележим, че описаното в статията е изключително честа практика при програмирането на PHP, а именно – когато правите заявка от един скрипт към самия него, то програмистите използват за улеснение $_SERVER['PHP_SELF']. Тази environment променлива записва текущия локален път към скрипта. Следните форми могат да бъдат видяни в изключително много PHP приложения:
echo '<form action="'.$_SERVER['PHP_SELF'].'">';
Както вече е описано в статията по-горе, този код е уязвим от потенциална XSS атака, като просто се добавят кавички, затваряща ъглова скоба и последващ html код или javascript чрез URL (от примера в сайта “/%22%3E%3Cscript%3Ealert(‘xss’)%3C/script%3E%3Cfoo”).
За превенция на подобни уязвимости ще повторим вече казани принципи:
1. Не използвайте GET за попълване на форми;
2. Защитавайте формите от XSRF;
3. Не вярвайте на environment променливите;
4. Третирайте environment променливи и ги филтрирайте по същия начин, както обикновените променливи.
Задача: Потърсете open source приложения, написани на PHP, които използват несигурно PHP_SELF.
Trackback URI | RSS за коментарите
Пусни коментар
Категории
- Бази от Данни (52)
- Вероятности (31)
- История (15)
- Кучета (69)
- Лада Нива (96)
- Математика (166)
- Методика (53)
- Общи работи (110)
- ПИК-3 Java (38)
- Политика (41)
- Програмни Среди (1)
- ПТСК (41)
- С/C++ (45)
- Семейни (16)
- Физика (35)
- ХHTML/JS (25)
- Храна (11)
Нови
- Извеждане на няколко произволни реда
- Full-Text търсене с InnoDB в MySQL
- Късметче от кафе
- Пред блока…
- Бушонно табло на Лада Нива