![]() |
CrazyPilot, правильнее mysql_real_escape_string для строк. Для интов либо intval, либо используй приведение типов $id = (int)$_GET['id'];
З.Ы. А error_reporting вообще выруби наглухо в .htaccess, когда отдебажишь. |
Вспомнилось для int
$a = 0+$GLOBALS['a']; PS Всерьёз не воспринимать, привет админу одного из хакфорумов :) |
Одним из наиболее эффективных методов защиты считается использование параметризованных команд (prepared statements).
Фильтрация с помощью регулярок тоже допустима, но только если есть однозначное понимание кода. Само собой, символы a la . не должны присутствовать в фильтре. Как было указано выше - приведение типов не должно использоваться при формировании условий. В PHP > 5.0 эффективным является использование mysqli_prepare. В случае использования PEAR возможно использование DB_common::prepare() и DB_common::query() |
Jokester, кстати твой вариант вполне норм вариант.
C3 ~ RET, можно конечно перепилить всю архитектуру приложения целиком, но способ предложенный остальными проще и требует куда меньшего количества правок, чем твой. |
Всё верно, камрад. Я не говорил о скорости, я говорил о результативности. Как пел Тальков - "скорость нужна при ловле блох".
P. S. если вчитаться внимательно в то, о чем я пишу, то можно понять, что упомянутое тобой "переписывание" у меня проходит как "в случае использования", а PHP 5 сейчас почти везде и функции, им реализуемые, соответственно, доступны без заморочек. |
Цитата:
|
Если человек задается вопросом обеспечения безопасности, то он понимает, что главное - результат. А не процесс. Очевидно, что переход на 5ую ветку (а я уверен, что 5ая ветка там уже) не представляет собой особых проблем (если это не так, то во-первых нет никакого смысла думать о фильтрации при наличии множества других ошибок в самом PHP 4, а во-вторых сам процесс миграции детально описан здесь - http://www.php.ru/manual/function.include/faq.migration5.html) и замена множества действий, таких как объявление переменной, приведение типа значения, проверка условия, вставка в запрос явно длиннее, чем задание переменной и использование ее в prepared statement
|
При чём тут миграция? Я о том, что ему куда больше правок придётся вносить в код, при отсутствии каких либо значимых преимуществ.
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 18:31. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot