Динамически типизированные языки и удаленный вызов метода - PullRequest
2 голосов
/ 31 мая 2011

Некоторые могут знать, что методы PHP можно вызывать удаленно из Flash. Иногда входным параметром удаленного метода PHP является массив целых чисел. Поскольку PHP динамически типизирован, злоумышленник может передать массив чего угодно. Массив целых чисел должен использоваться в запросе SQL. На данный момент я предотвращаю инъекции, как это:

foreach ($unsafeArray as $value)
    $safeArray[] = (int)$value;

Что бы вы порекомендовали? Может быть, я должен начать использовать Java: D

Ответы [ 2 ]

1 голос
/ 31 мая 2011

Вы можете использовать это: $aSafeArray = array_map('intval', $aUnsafeArray);, чтобы убедиться, что все переданные значения являются целыми числами.

Мой совет - начать использовать подготовленные операторы !Пример:

$o->bindParam(':anint', $iInt, PDO::PARAM_INT);
0 голосов
/ 31 мая 2011

Что бы вы порекомендовали?

Я не эксперт по флеш-памяти, но на самом деле методы PHP можно вызывать, просто зная его имя, а параметры можно передавать как массив. Таким образом, проблема на самом деле не в удаленном вызове метода, а в фильтрации и проверке входных данных.

В зависимости от предполагаемого поведения, я бы использовал intval, а не hard cast к int (AFAIR возвращал бы 0 при недопустимом значении), в противном случае вы могли бы вызвать исключение или что-то еще. Сначала вы должны определить его поведение.

Может быть, я должен начать использовать Java

Нет, если только вы не хотите раздутого решения с точки зрения скорости разработки и огромных требований к памяти во время компиляции и выполнения: p

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...