извращённый синтаксис пхп

Discussion in 'PHP' started by chekist, 30 Jan 2008.

  1. chekist

    chekist Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    215
    Likes Received:
    160
    Reputations:
    100
    на bugtraq.ru нашёл старую статью про обход фильтров

    $a = 'file_get_contents';
    echo ${'a'}('msg.txt');

    как это вообще может работать?
     
  2. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    похоже на библиотеку jQuery
     
  3. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    NOmeR1 да не совсем не то написано же
    :)
    2 chekist ничего такого функция может так работать
     
  4. chekist

    chekist Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    215
    Likes Received:
    160
    Reputations:
    100
    2 gibson работают не все функции, к примеру eval не хочет работать
    а штука очень удобная чтобы прятать код
     
  5. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    еще давно zadoxlik описывал подобную особенность, к сожалению сам я в то время не нашел официального описания подобного вызова функции, но скажу вам более - наряду с использованием значения переменной по ее имени ${'name'} можно вызывать и функцию лишь по ее имени см. выше. это срабатывает и в парсирующих строках, например двойных кавычках или <<< : "{${xek('aaa')}}"
     
  6. Meanor

    Meanor Elder - Старейшина

    Joined:
    9 Sep 2007
    Messages:
    66
    Likes Received:
    9
    Reputations:
    0
    http://php.benscom.com/manual/ru/language.types.string.php
    тут можно найти много про фигурные скобки и тройные знаки "меньше/больше", и как их юзать...
     
  7. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    хмм.. совсем немного кодил на пхп, но уже успел познакомится с этой особенностью языка.. ) в php-мане про это кстати написано:

    http://ru2.php.net/manual/ru/functions.variable-functions.php

    chekist

    eval - не является функцией в пхп, потому и не работает..