| « Displaying Chinese UTF-8 characters in gvim on Windows | Prosper's insecure bank account management feature » |
$_SERVER['PHP_SELF'] and cross-site scripting
Monday, May 20, 2013
It's tempting to assume that PHP's $_SERVER array mostly contains fields out of the reach of an attacker, since these are "server" variables. However, that's not always the case; in particular, the seemingly innocuous PHP_SELF field can be a vector for cross-site scripting.
For example, consider the following foo.php:
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<!-- ...form elements... -->
</form>
If I visit http://www.example.com/foo.php, $_SERVER['PHP_SELF'] will be /foo.php and everything will work correctly.
But what if I visit http://www.example.com/foo.php/"><script>alert('hello');</script> instead? Then the rendered HTML will be:
<form method="POST" action="/foo.php/"><script>alert('hello');</script>">
<!-- ...form elements... -->
</form>
This allows injection of arbitrary script running under the host site's context, also known as XSS. Two ways to fix this are:
- Use
$_SERVER['SCRIPT_NAME']instead of$_SERVER['PHP_SELF']. The former is the name of the actual script file and can't normally be manipulated by an attacker. - Use htmlspecialchars(), which by default will escape double-quotes and prevent a user-supplied string from breaking out of an HTML attribute context.
By the way, this was pretty surprising behavior to me for two reasons:
- The documentation of PHP_SELF is misleading: The first sentence says:
It seems odd that PHP would refer to something likeThe filename of the currently executing script, relative to the document root.
/foo.php/"><script>alert('hello');</script>as a "filename." - It's pretty bizarre default behavior that PHP will execute
/foo.phpfor a request of/foo.php/bar/baz.
Comments
bocardaw on Thursday, November 5, 2026 at 17:48
За 15 лет работы «Идеал Строй» построила в Москве и области десятки домов и коттеджей под ключ. В ходу газобетон, газоблок и кирпич, фундаменты всех видов, фасадные работы, дренаж и благоустройство территории. Проект, смета и сроки прописываются в договоре. Подробные цены и каталог готовых проектов опубликованы на сайте <a href=https://idealstr.ru/>https://idealstr.ru/</a> — там же примеры сданных объектов. Своя техника у бригад и прямые закупки материалов на заводах.
rupebythich on Friday, November 6, 2026 at 01:22
Современная игровая платформа Wilder привлекает внимание аудитории внушительной коллекцией из девяти тысяч лицензионных слотов от ведущих провайдеров индустрии. На официальном портале <a href=https://wilder.black/ThZhzqSvu>https://wilder.black/ThZhzqSvu</a> участников ждут динамичные турниры, прозрачная программа лояльности и оперативный вывод средств. Грамотный сервис создает комфортные условия для честного отдыха.
sicilyelDuemn on Friday, November 6, 2026 at 02:47
Возвращение безупречной свежести и мягкости домашнему текстилю требует тонкого фабричного подхода. Тульская специализированная химчистка <a href=https://xn--b1agkeimcs.xn--p1ai/>https://xn--b1agkeimcs.xn--p1ai/</a> проводит профессиональное глубокое обеспыливание, бережную стирку гипоаллергенными средствами, дезинфекцию и сушку ковров с комфортным бесплатным вывозом и доставкой прямо к вашему порогу.
yofavlicore on Friday, November 6, 2026 at 04:01
Грамотное обслуживание современного автомобиля требует бескомпромиссного качества деталей и профессионального подхода к их поиску. Специализированный онлайн-магазин <a href=https://mobizap.ru/>https://mobizap.ru/</a> предоставляет автовладельцам обширный каталог оригинальных запчастей, надежных аналогов, моторных масел и расходников. Удобная система подбора по VIN-коду, выгодные цены и оперативная доставка гарантируют уверенность в каждой поездке.
vodudrJag on Friday, November 6, 2026 at 11:21
Компания Полиметалл производит гидравлические прессы с усилием от 1 до 200 тонн под техническое задание заказчика. Каталог включает ручные и электрогидравлические прессы с плитами различных габаритов. Выбрать оборудование можно на сайте <a href=https://tecamet.ru/pressy/pressy-gidravlicheskie>https://tecamet.ru/pressy/pressy-gidravlicheskie</a> без переплаты посредникам. Технику берут автосервисы, кузницы, пищевые и мебельные производства для выпрессовки, гибки, отжима и склейки. К каждому прессу прилагаются паспорт и инструкция по эксплуатации.
tojunsaF on Saturday, November 7, 2026 at 02:55
Специалисты по кибербезопасности помогают защищать аккаунты, проводить разрешённые проверки и возвращать доступ к собственным данным. Подробная информация о консультациях и легальном аудите размещена на <a href=https://xakerplus.com/threads/predlozhenie-uslug-xakera-vzlom-pochty-socialnyx-setej-i-drugie-xakerskie-uslugi-perechen-uslug-gorazdo-bolshe-pishite.13025/>https://xakerplus.com/threads/predlozhenie-uslug-xakera-vzlom-pochty-socialnyx-setej-i-drugie-xakerskie-uslugi-perechen-uslug-gorazdo-bolshe-pishite.13025/</a> Специалисты работают только по согласованному заданию и в правовом поле.
Jamesinacy on Saturday, November 7, 2026 at 03:08
welacsjAr on Saturday, November 7, 2026 at 07:38
В SMS PRO можно купить виртуальный номер для приёма SMS или готовый аккаунт Telegram. Платформа работает с более чем 600 сервисами и 180 странами, номер приходит сразу после оплаты. Заказать номер можно на сайте <a href=https://sms-pro.app/>https://sms-pro.app/</a> за пару минут без лишних шагов. Если код не пришёл в отведённое время, деньги автоматически возвращаются на баланс. За три года сервис собрал свыше 1400 отзывов и дополнил Telegram-бот полноценным сайтом.
bosumHoift on Saturday, November 7, 2026 at 08:25
The electronic atlas of America contains detailed maps of the USA, Canada, Mexico, and the nations of South America. The collection features political, road, and topographic maps of states, national parks, and cities. All materials are available on the website <a href=https://us-atlas.com/>https://us-atlas.com/</a> for free and in a convenient format. Each map can be explored online or printed out for travel, work, and study.
BrianCes on Sunday, November 8, 2026 at 02:06
https://intercom.help/best-betting/en/articles/17827780-code-promo-1xbet-togo-2026-1x200era-credit-absent
lenednsnist on Sunday, November 8, 2026 at 08:31
«Лейб-Медик» — специализированная московская клиника естественного зачатия и вынашивания здорового ребёнка. Доктора, за плечами которых 30 лет практики, находят причину бесплодия с точностью около 100%, восстанавливают репродуктивное здоровье пары и сохраняют беременность на самых ранних сроках. Ищете <a href=http://lmdoc.ru/prices/>аппаратное измерение состава тела</a>? Подробности и запись на приём на сайте lmdoc.ru клиники. Фирменная методика строится на научном подходе, учёте психологического фактора и заботливом сопровождении каждой пары.
pajegirdMuh on Sunday, November 8, 2026 at 21:25
Богатый урожай начинается со здорового посадочного материала и сортовой чистоты. Выксунский питомник предлагает садоводам проверенные семена, ягодные кустарники и морозостойкие яблони. На сайте <a href=http://super-ogorod.7910.org/>http://super-ogorod.7910.org/</a> удобно заказать районированные саженцы почтой в любой уголок России. Многолетний опыт селекции и заботливый уход гарантируют отличную приживаемость каждого растения.
lakebilipfup on Sunday, November 8, 2026 at 22:30
Гастрономический онлайн-журнал «5 Минут» превращает ежедневное приготовление домашних блюд в увлекательное и быстрое кулинарное творчество. Тысячи проверенных пошаговых рецептов собраны на <a href=https://food-ru.ru/>https://food-ru.ru/</a> где кулинары любого уровня легко находят сбалансированные завтраки, сытные обеды, полезное детское меню и изысканные десерты с точными граммовками, калорийностью и практическими подсказками.
vumujelvaX on Sunday, November 8, 2026 at 23:29
Нержавеющая гофра давно вытеснила резиновые шланги в оплётке, и московская компания делает на этом ставку: металлорукава РВД диаметром до 250 мм, сильфонная подводка от 1/2 до 2 1/2 дюйма, шаровые краны, медные трубы и гидрострелки. На <a href=https://shemi-otopleniya.ru/>https://shemi-otopleniya.ru/</a> объясняют, почему сталь AISI 304 выдерживает до +250 °С, не боится гидроударов и перемерзания, а напольный котёл с такой подводкой подключается быстро и без сварки.
haluperDrite on Sunday, November 8, 2026 at 23:45
Поздравитель — это подборка поздравлений и открыток к любому событию. Тексты проходят проверку: в стихах есть рифма, в прозе — живой слог. Ищете <a href=https://pozdravitel.com/>где найти красивые поздравления</a>? Персональное пожелание за минуту создаст Генератор 2.0 на сайте pozdravitel.com бесплатно и без регистрации. Открытку с именем адресата можно оформить и отправить в один клик. Раздел праздников покажет ближайшие даты.
xosigletego on Sunday, November 8, 2026 at 23:55
Двухэтажный бревенчатый дом 273,5 м 1998 года на участке 11 соток среди сосен выставлен на продажу в Королеве, микрорайон Валентиновка. В цоколе оборудованы гардеробная и спортзона, на этажах две ванные, установлены кондиционеры, генератор, сигнализация и рольставни. Ищете, где <a href=https://korolev.cian.ru/sale/suburban/334163383/>купить двухэтажный дом в Королёве</a>? Подробности и 27 фото размещены на странице korolev.cian.ru/sale/suburban/334163383/ в открытом доступе. Отдельно расположена баня 71,5 м с парилкой на дровах, купелью и просторной террасой. Дом продается с мебелью, до МКАД 10 км, до станции 20 минут пешком.
boxevthkag on Monday, November 9, 2026 at 01:56
Заводские автомобильные весы — проверенное решение для контроля веса грузов на складах, элеваторах и карьерах. Длина платформ достигает 24 метров, предел взвешивания — 100 тонн, оборудование устойчиво к морозу и жаре. Заказать весы с монтажом и поверкой можно на <a href=https://cxt.su/products/avtomobilnye-vesy/>https://cxt.su/products/avtomobilnye-vesy/</a> по цене завода. Продукция числится в Госреестре средств измерений и полностью соответствует ГОСТ. Инженеры рассчитывают конфигурацию под задачи заказчика и обеспечивают гарантийное обслуживание.
luwetilasRer on Monday, November 9, 2026 at 02:01
Качественный юмор остается лучшим средством от стресса и усталости, объединяя людей искренней улыбкой. Когда хочется отвлечься от рутины и поднять настроение свежими шутками, на помощь приходит <a href=https://anecdotum.ru/>https://anecdotum.ru/</a> — современный портал остроумных историй, колоритных анекдотов и метких афоризмов. Удобная рубрикация позволяет за секунды отыскать яркую реплику для дружеской встречи или работы.
fevepinasync on Monday, November 9, 2026 at 02:06
Качественный сон и крепкое здоровье зависят от оптимального уровня влажности в спальне, особенно в отопительный сезон. Полезная статья на <a href=https://releika.ru/kak-vybrat-uvlazhnitel-vozduha-dlya-kvartiry-i-spalni/>https://releika.ru/kak-vybrat-uvlazhnitel-vozduha-dlya-kvartiry-i-spalni/</a> подробно объясняет все критерии выбора климатической техники и помогает найти бесшумную модель для полноценного отдыха. Создайте в квартире атмосферу уюта, свежести и легкого дыхания каждый день.
dahacnyjal on Monday, November 9, 2026 at 02:35
Клопы, тараканы и грызуны не исчезают сами — с каждым днём их становится больше. Служба дезинфекции <a href=https://dezinfekciya86.ru/>https://dezinfekciya86.ru/</a> проводит дезинсекцию, дератизацию и дезинфекцию квартир, домов и коммерческих объектов. Специалисты используют сертифицированные препараты, безопасные для людей и животных, и дают гарантию результата. Выезд — в день обращения.
poliknDot on Monday, November 9, 2026 at 02:48
Электрическая лестничная тележка ЭГ 1 С 200 доставляет до 200 кг груза вверх и вниз по лестнице без подъёмника. Быстросъёмный литий-ионный аккумулятор и выдвижная ручка исключают простои в течение смены. Требуется <a href=https://electrog.ru/product/eg-1-c-200/>ступенькоход с электроприводом</a>? Подробные характеристики модели размещены на electrog.ru/product/eg-1-c-200 вместе с видеообзором. Масса устройства 35 кг, производитель даёт год гарантии, возможны доработка под задачу и пробная эксплуатация.
David Annis on Wednesday, June 25, 2014 at 06:32
I have used the fact that php will execute /foo.php from a request that contains /foo.php/bar to make search engine friendly URLs because many search engines will not index both wheretodrink.php?answer=bar and wheretodrink.php?answer=home because they fear an infinite set of URLs.