Старый 19.04.2011, 18:18   #11
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

CrazyPilot, правильнее mysql_real_escape_string для строк. Для интов либо intval, либо используй приведение типов $id = (int)$_GET['id'];

З.Ы.
А error_reporting вообще выруби наглухо в .htaccess, когда отдебажишь.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 19.04.2011, 18:50   #12
Jokester
 
Аватар для Jokester
 
Регистрация: 01.07.2010
Сообщений: 252
Репутация: 155
По умолчанию

Вспомнилось для int

$a = 0+$GLOBALS['a'];

PS Всерьёз не воспринимать, привет админу одного из хакфорумов
__________________
------------------
Jokester вне форума   Ответить с цитированием
Старый 19.04.2011, 23:20   #13
C3 ~ RET
 
Аватар для C3 ~ RET
 
Регистрация: 30.08.2010
Сообщений: 46
Репутация: 15
По умолчанию

Одним из наиболее эффективных методов защиты считается использование параметризованных команд (prepared statements).
Фильтрация с помощью регулярок тоже допустима, но только если есть однозначное понимание кода. Само собой, символы a la . не должны присутствовать в фильтре. Как было указано выше - приведение типов не должно использоваться при формировании условий. В PHP > 5.0 эффективным является использование mysqli_prepare. В случае использования PEAR возможно использование DB_common:repare() и DB_common::query()
C3 ~ RET вне форума   Ответить с цитированием
Старый 19.04.2011, 23:39   #14
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Jokester, кстати твой вариант вполне норм вариант.
C3 ~ RET, можно конечно перепилить всю архитектуру приложения целиком, но способ предложенный остальными проще и требует куда меньшего количества правок, чем твой.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 19.04.2011, 23:49   #15
C3 ~ RET
 
Аватар для C3 ~ RET
 
Регистрация: 30.08.2010
Сообщений: 46
Репутация: 15
По умолчанию

Всё верно, камрад. Я не говорил о скорости, я говорил о результативности. Как пел Тальков - "скорость нужна при ловле блох".

P. S. если вчитаться внимательно в то, о чем я пишу, то можно понять, что упомянутое тобой "переписывание" у меня проходит как "в случае использования", а PHP 5 сейчас почти везде и функции, им реализуемые, соответственно, доступны без заморочек.

Последний раз редактировалось C3 ~ RET; 19.04.2011 в 23:51..
C3 ~ RET вне форума   Ответить с цитированием
Старый 19.04.2011, 23:54   #16
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Цитата:
Сообщение от C3 ~ RET Посмотреть сообщение
Всё верно, камрад. Я не говорил о скорости, я говорил о результативности. Как пел Тальков - "скорость нужна при ловле блох".

P. S. если вчитаться внимательно в то, о чем я пишу, то можно понять, что упомянутое тобой "переписывание" у меня проходит как "в случае использования", а PHP 5 сейчас почти везде и функции, им реализуемые, соответственно, доступны без заморочек.
Это всё клёво конечно, я бы тоже советовал использовать prepeared statements, если бы проект писался бы с нуля, но в данном случае куда проще и удобнее, исправить баги по старинке. В данном случае, никаких преимуществ использование PDO не даст. (А времени у программиста отнимет порядочно)
__________________
Мой блог: http://qwazar.ru/.

Последний раз редактировалось Qwazar; 19.04.2011 в 23:57..
Qwazar вне форума   Ответить с цитированием
Старый 20.04.2011, 00:02   #17
C3 ~ RET
 
Аватар для C3 ~ RET
 
Регистрация: 30.08.2010
Сообщений: 46
Репутация: 15
По умолчанию

Если человек задается вопросом обеспечения безопасности, то он понимает, что главное - результат. А не процесс. Очевидно, что переход на 5ую ветку (а я уверен, что 5ая ветка там уже) не представляет собой особых проблем (если это не так, то во-первых нет никакого смысла думать о фильтрации при наличии множества других ошибок в самом PHP 4, а во-вторых сам процесс миграции детально описан здесь - http://www.php.ru/manual/function.include/faq.migration5.html) и замена множества действий, таких как объявление переменной, приведение типа значения, проверка условия, вставка в запрос явно длиннее, чем задание переменной и использование ее в prepared statement
C3 ~ RET вне форума   Ответить с цитированием
Старый 20.04.2011, 00:02   #18
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

При чём тут миграция? Я о том, что ему куда больше правок придётся вносить в код, при отсутствии каких либо значимых преимуществ.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 20.04.2011, 00:04   #19
C3 ~ RET
 
Аватар для C3 ~ RET
 
Регистрация: 30.08.2010
Сообщений: 46
Репутация: 15
По умолчанию

Цитата:
Сообщение от Qwazar Посмотреть сообщение
При чём тут миграция? Я о том, что ему куда больше правок придётся вносить в код, при отсутствии каких либо значимых преимуществ.
См. мой пост выше, пор фаворе. Там сопоставлено кол-во строк в коде для фильтрации твоим способом "по-старинке", и при помощи альтернативного современного способа prepared statement.

Последний раз редактировалось C3 ~ RET; 20.04.2011 в 00:07..
C3 ~ RET вне форума   Ответить с цитированием
Старый 20.04.2011, 00:09   #20
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Цитата:
Сообщение от C3 ~ RET Посмотреть сообщение
См. мой пост выше, пор фаворе. Там сопоставлено кол-во строк в коде для фильтрации твоим способом "по-старинке", и при помощи альтернативного современного способа prepared statement.
Ладно, проехали. Ты о чём то другом разговариваешь.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot