« 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.php
for a request of/foo.php/bar/baz
.
Comments
Jerryhania on Monday, September 15, 2025 at 07:48
<a href=https://t.me/Asiapsi>психолог калуга</a>
Richarddiolo on Wednesday, September 17, 2025 at 04:31
<a href=https://ocia.org>актуальные зеркала kraken</a> kraken onion, kraken onion ссылка, kraken onion зеркала, kraken рабочая ссылка onion, сайт kraken onion, kraken darknet, kraken darknet market, kraken darknet ссылка, сайт kraken darknet, kraken актуальные ссылки, кракен ссылка kraken, kraken официальные ссылки, kraken ссылка тор, kraken ссылка зеркало, kraken ссылка на сайт, kraken онион, kraken онион тор, кракен онион, кракен онион тор, кракен онион зеркало, кракен даркнет маркет, кракен darknet, кракен onion, кракен ссылка onion, кракен onion сайт, kra ссылка, kraken сайт, kraken актуальные ссылки, kraken зеркало, kraken ссылка зеркало, kraken зеркало рабочее, актуальные зеркала kraken, kraken сайт зеркала, kraken маркетплейс зеркало, кракен ссылка, кракен даркнет
Richarddiolo on Wednesday, September 17, 2025 at 12:42
<a href=https://ocia.org>kraken актуальные ссылки</a> kraken onion, kraken onion ссылка, kraken onion зеркала, kraken рабочая ссылка onion, сайт kraken onion, kraken darknet, kraken darknet market, kraken darknet ссылка, сайт kraken darknet, kraken актуальные ссылки, кракен ссылка kraken, kraken официальные ссылки, kraken ссылка тор, kraken ссылка зеркало, kraken ссылка на сайт, kraken онион, kraken онион тор, кракен онион, кракен онион тор, кракен онион зеркало, кракен даркнет маркет, кракен darknet, кракен onion, кракен ссылка onion, кракен onion сайт, kra ссылка, kraken сайт, kraken актуальные ссылки, kraken зеркало, kraken ссылка зеркало, kraken зеркало рабочее, актуальные зеркала kraken, kraken сайт зеркала, kraken маркетплейс зеркало, кракен ссылка, кракен даркнет
xikipySueda on Wednesday, September 17, 2025 at 15:02
В мире бизнеса успех часто зависит от тщательного планирования. Готовые бизнес-планы и анализ рынка становятся настоящим спасением для начинающих предпринимателей. Представьте: вы хотите открыть кафе или автомойку, но не знаете, с чего начать. В этом случае выручают специализированные материалы, учитывающие актуальные тренды, риски и перспективы. По информации от экспертов вроде EMARKETER, сектор финансовых услуг увеличивается на 5-7% в год, что подчеркивает необходимость точного анализа. Сайт <a href=https://financial-project.ru/>https://financial-project.ru/</a> предлагает обширный каталог готовых бизнес-планов по доступной цене 550 рублей. Здесь вы найдете варианты для туризма, строительства, медицины и других сфер. Такие документы содержат финансовые вычисления, стратегии маркетинга и прогнозы. Они помогают привлечь инвесторов или получить кредит. Данные подтверждают: фирмы с ясным планом на 30% чаще добиваются успеха. Воспользуйтесь подобными ресурсами для процветания вашего проекта, и не забывайте – верный старт это основа долгосрочного триумфа.
Richarddiolo on Wednesday, September 17, 2025 at 16:31
<a href=https://dtcc.edu.vn>кракен ссылка</a> kraken onion, kraken onion ссылка, kraken onion зеркала, kraken рабочая ссылка onion, сайт kraken onion, kraken darknet, kraken darknet market, kraken darknet ссылка, сайт kraken darknet, kraken актуальные ссылки, кракен ссылка kraken, kraken официальные ссылки, kraken ссылка тор, kraken ссылка зеркало, kraken ссылка на сайт, kraken онион, kraken онион тор, кракен онион, кракен онион тор, кракен онион зеркало, кракен даркнет маркет, кракен darknet, кракен onion, кракен ссылка onion, кракен onion сайт, kra ссылка, kraken сайт, kraken актуальные ссылки, kraken зеркало, kraken ссылка зеркало, kraken зеркало рабочее, актуальные зеркала kraken, kraken сайт зеркала, kraken маркетплейс зеркало, кракен ссылка, кракен даркнет
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.