PDA

Просмотр полной версии : защита запросов к бд


cosmo
18.07.2005, 10:25
Привет всем. Наконец то форум заработал, и я опять смогу задать свои глупые вопросы. :)
Вопрос следующий. Не секрет что ссылки типа http://www.site.ru/page.php?id='345 являются потенциально опасными. Я такую проблему обхожу при помощи addslashes(). Но вот страница выдаст ошибку. Я видел страницы, на которых какую бы комбинацию ты не ввел, она все равно тебе выдаст тот результат, который бы был при правильной передаче (естественно не для всех запросов, а для запросов типа http://www.site.ru/page.php?id='345 или http://www.site.ru/page.php?id=345'

ninja_127
18.07.2005, 11:43
используй чпу + @

nagash
18.07.2005, 12:03
что значит "страница выдаст ошибку"
какую ошибку?
кто выдаст?
кому выдаст?
поподробнее...

cosmo
18.07.2005, 13:50
Ну смотри. Допустим есть запрос - mysql_query("select nazv from catalog where id='".addslashes($_REQUEST["id"])."'")

При обращении к странице, допустим www.site.ru/catalog.php?id=34, он выдаст нам название позиции, где id=34, но если кто-то напишет www.site.ru/catalog.php?id='34, то хотя он и защитит от подстановки запрос, но все таки выдаст ошибку что типа такого не найдено. Конечно это не существенно, можно это подавить, но просто я виде на сайте каком-то что когда так делаешь, он все равно выполняет запрос типа www.site.ru/catalog.php?id=34. Вот мне и стало интересно

P.S. nagash привет. Давно тебя не слышал

nagash
18.07.2005, 13:57
для каждой конкретной ситуации тебе нужно разное поведение...
если тебе нужно только инт оставить - mysql_query("select nazv from catalog where id='".intval($_REQUEST["id"])."'")
и т.п. в зависимости от того, что требуется...

cosmo
19.07.2005, 09:14
Спасибо. Я так и делаю. Конечно в основном используется int, для других данных использую addslashes()

Можно еще глупый вопрос. Никто еще не смог дать мне на него умный ответ

Crazy
19.07.2005, 09:42
Можно еще глупый вопрос. Никто еще не смог дать мне на него умный ответ

Умный ответ: на некорректный URL, которому не соответствует никакая страница, нужно выдавать ошибку 404. Строго по стандарту.

cosmo
19.07.2005, 12:06
не я имел ввиду другой вопрос по ооп и классам. с этим все понятно. да, еще посоветуйте книгу хорошую, но не для новичков, а более продвинутую

Vovec
19.07.2005, 14:13
по ооп и классам
в php (в 4 по крайней мере) нет нормальной реализации ООП

nagash
19.07.2005, 14:26
Vovec
Да? и чего тебе в четвёрке от ООП не хватает?

Vovec
19.07.2005, 14:48
да? и чего тебе в четвёрке от ооп не хватает?
инкапсуляция, перегрузка методов, полиморфизм, агрегация и делегирование.

nagash
19.07.2005, 14:52
ты уверен что ты про вэб програмирование говоришь? =)
нельзя смешивать разные языки програмирования и пытаться их все подогнать под одно видение...

Crazy
19.07.2005, 15:03
не я имел ввиду другой вопрос по ооп и классам.

Вопросы не надо иметь в виду. Вопросы надо задавать в письменном виде. Телепаты, если ты не в курсе, все еще в отпуске.

Crazy
19.07.2005, 15:05
в php (в 4 по крайней мере) нет нормальной реализации ООП

- Не люблю кошек! От них шерсть... запах...
- .. .. ...... .. ...... .. ........ :)

Vovec
19.07.2005, 15:06
я про ооп. см. теорию. у "вэб програмирования" свое ооп? :)
см. Cgi.

з.ы. все, что будет дальше - оффтопик.
нехорошо.

Vovec
19.07.2005, 15:14
- не люблю кошек! от них шерсть... запах...
..дефорум модери. там и выступай :) .

"программист" - "дизайнер" :)

Crazy
19.07.2005, 15:25
..дефорум модери. там и выступай :)

Возражений по существу, стало быть, нет? Вот и славно. :)

nagash
19.07.2005, 15:29
основной вопрос треда раскрыт...
далее флейм пошёл...