$_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:

    The filename of the currently executing script, relative to the document root.

    It seems odd that PHP would refer to something like /foo.php/"><script>alert('hello');</script> as a "filename."
  • It's pretty bizarre default behavior that PHP will execute /foo.php for a request of /foo.php/bar/baz.

Tags: php, xss, security | Posted at 11:13 | Comments (12)


Comments

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.

buzefbek on Sunday, February 22, 2026 at 02:28

Lolz.live объединяет тысячи геймеров из разных стран для обмена опытом и знаниями. Ресурс включает развернутые категории по хитовым проектам, практичные инструкции и современные беседы. Тут вы обнаружите соратников, рекомендации от экспертов и актуальные события мира игр. Ищете <a href=https://lolz.live/>форум war thunder</a>? Переходите на lolz.live и становитесь частью активного сообщества. Комфортная навигация, теплая обстановка и регулярные обновления информации встречают всех членов форума.

hDuzohcetle on Sunday, February 22, 2026 at 03:35

Looking for <a href=https://thetradable.com/stocks/ast-spacemobile-hits-alltime-highs-as-100-level-returns--a>asts mobile news</a>? Head to the top portal, thetradable.com, featuring all essential and fresh cryptocurrency market updates, reviews, expert commentary, and major happenings. Our resource is user-friendly and will be of interest to both industry novices and industry experts. Additionally, we provide comprehensive coverage of gold, silver, industrial sectors, and beyond.

nirywhyAsymn on Sunday, February 22, 2026 at 03:57

Telegram-канал по ссылке <a href=https://t.me/ffgdfggfgdfg/>https://t.me/ffgdfggfgdfg/</a> предлагает актуальную информацию и эксклюзивные материалы для подписчиков, которые ценят оперативность и достоверность. Здесь публикуются новости, аналитика, полезные советы и специальные предложения, недоступные в других источниках. Подписка на канал открывает доступ к закрытому сообществу единомышленников, где можно обсудить важные темы и получить экспертное мнение. Присоединяйтесь к каналу и будьте в курсе всех обновлений первыми.

TylerTew on Sunday, February 22, 2026 at 04:35

Came across an interesting article — worth a read <a href=https://webyourself.eu/blogs/1750908/%D0%9B%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D0%B0%D1%81%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0-%D0%B0%D1%83%D1%82%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE-%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0-%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4%D1%8B-%D0%B8-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B>https://webyourself.eu/blogs/1750908/Лечение-расстройства-аутистического-спектра-подходы-и-методы</a>

nuxixsip on Sunday, February 22, 2026 at 09:58

Мебельный магазин в Краснодаре представляет обширный выбор готовых изделий для жилья с транспортировкой и квалифицированной установкой. В ассортименте собраны модульные стенки, спальные комплекты, кухонные гарнитуры, детские наборы и шкафы разных габаритов. Ищете <a href=https://mebelroom-krd.ru/shop/folder/massiv_1200>кровати 120 каталог</a>? На платформе mebelroom-krd.ru покупатели выбирают кровати от 80 до 200 см, шкафы-купе, диваны и комплектующие по доступным ценам. Фирма осуществляет быструю доставку по городу и выполняет надежную установку мебели компетентными сборщиками.

fagembeida on Sunday, February 22, 2026 at 10:51

Детские кулеры «Акваняня» созданы специально для маленьких пользователей с учетом их роста и безопасности. Яркий дизайн в виде кошечки привлекает внимание детей и делает процесс питья увлекательным. Модели представлены в нескольких цветовых вариантах на <a href=https://voda-s-gor.ru/detskie-kuleryi/>https://voda-s-gor.ru/detskie-kuleryi/</a> по доступной цене. Кулеры компактны, безопасны и идеально подходят для детских комнат, садиков и развивающих центров в Махачкале.

rotdexChoff on Sunday, February 22, 2026 at 16:16

Looking for <a href=https://play.google.com/store/apps/details?id=com.ugo.play.free.farm.valley>farm game</a>? Grab your free copy at play.google.com/store/apps/details?id=com.ugo.play.free.farm.valley! It's not simply about farming—it's an entire world brimming with nostalgic characters and stories from our youth. Create your one-of-a-kind farm and control every aspect of it! With vibrant graphics and regular updates plus events, it offers engaging gameplay for players of all ages!

nadadelGox on Sunday, February 22, 2026 at 17:00

Компания «Дока Строй» специализируется на строительных работах полного цикла — от проектирования до сдачи объекта под ключ. В портфолио фирмы жилые дома, коммерческие здания и промышленные сооружения, возведенные с соблюдением всех технологических норм и стандартов качества. Опытные инженеры и строители используют проверенные материалы и современное оборудование для выполнения работ точно в срок. Подробнее о реализованных проектах и услугах можно узнать на сайте <a href=https://doka-stroi.ru/>https://doka-stroi.ru/</a>, где представлены примеры объектов и условия сотрудничества с заказчиками.

ciniggot on Monday, February 23, 2026 at 02:57

Каталог компании Мото-ДВ представляет широкий ассортимент мототехники и электротранспорта для различных целей использования. Покупатели могут выбрать квадроциклы, питбайки, электросамокаты и аксессуары с подробными техническими характеристиками и фотографиями. На странице <a href=https://promindex.ru/izhevsk/companies/100000233-moto-dv/catalog>https://promindex.ru/izhevsk/companies/100000233-moto-dv/catalog</a> размещены актуальные цены и информация о наличии моделей на складе. Возможность оформления покупки в кредит без первоначального взноса делает технику доступной широкому кругу покупателей. Консультации специалистов помогают подобрать оптимальный вариант транспорта под конкретные требования.

cynybdSaild on Monday, February 23, 2026 at 04:44

Автоматические врезные пороги решают проблему теплоизоляции и звукоизоляции без создания барьеров в дверном проеме. Умные пороги устанавливаются на межкомнатные, пластиковые, алюминиевые и противопожарные двери любых типов. На портале <a href=https://smartporog.ru/>https://smartporog.ru/</a> представлен каталог выпадающих порогов с подробными характеристиками и видеообзорами. Устройство автоматически опускается при закрытии двери, устраняя сквозняки, пыль и посторонние запахи. Продукция подходит для жилых и коммерческих помещений, обеспечивая комфорт и повышенную пожаробезопасность объектов.

sufokGOM on Monday, February 23, 2026 at 10:30

Производственно-техническая компания «Экспресс-связь» в Екатеринбурге предлагает комплексные решения по монтажу систем безопасности и автоматизации. Специалисты выполняют установку видеонаблюдения, охранно-пожарной сигнализации, домофонов, СКУД и локальных сетей с проектированием и сдачей объектов под ключ. Полный перечень услуг и цены представлены на сайте <a href=https://express-svyaz.ru/index.php>https://express-svyaz.ru/index.php</a> с примерами реализованных проектов. Организация выпускает строительные бытовки, модульные конструкции и доборные детали с полимерным напылением.

Add a comment

Name:
Email: (optional, not displayed to public)
URL: (do not fill this in — leave blank!)

Comment: