Что делать, если .htaccess не обрабатывает знак вопроса.запостил: 21 Июня 2011 г.
Помнится, как-то (а было это практически ровно два года назад) я расписывал, каким образом можно защититься от SQL-инъекции при помощи файла .htaccess. И признаюсь Вам честно, уважаемый читатель, уже тогда у меня в голове засела мысль о том, что где-то там есть какая-то лазейка. В принципе, я даже догадывался, как она выглядит и каким же образом можно обойти эту .htaccess защиту. Именно поэтому я в очередной раз повторю: не надейтесь только на одну защиту, обороняйтесь всегда комплексно. Никогда не думайте, что какой-либо параметр "не пройдет". Любую защиту можно обойти. Если Вы уже прочли пост по вышеприведенной ссылке - просто замечательно. Тогда я не буду повторяться, а сразу приступлю к разбору ошибки. .htaccess - не панацея.Итак, в файле .htaccess имеем такого рода правила: Согласен, взломщику доступ к названиям GET-параметров запрещен, и тем не менее, подобрать кое-что вручную будет не особенно сложно. Вот, например, ссылка, созданная по такому шаблону: Название последнего параметра так и напрашивается - id, здесь даже анализ сайта онлайн не требуется (хотя вообще-то штука весьма полезная). Обратите внимание на содержимое .htaccess файла, именно так сей параметр и называется. Можно, конечно, начать путать код, придумывать сверхоригинальные имена для GET-параметров, но лучше этого не делать. Вы сами же запутаетесь в них при создании третьей-четвертой страницы сайта. Я уж не говорю о том, насколько "приятно" будет переносить код, написанный под такие "секретные" имена. Имена переменных должны быть прежде всего понятны. Впрочем, я отвлекся. Каким же образом можно передать нужные параметры? А вот таким: а то и вовсе: Обидно, правда? Все старания по указанию типов данных, входящих в URL, а то и вовсе конкретных перечислимых значений летят в ан "Знак вопроса" и .htaccessРешение назревает простое и понятное. Нужно добавить в .htaccess правило, которое будет проверять URL на наличие символа "?" и если таковой вредитель присутствует, значит, чьи-то шаловливые ручки пытаются нам внедрить что-то свое. Все бы ничего, да есть одна маленькая проблема. При обработке правил, записанных в .htaccess, Apache работает только с тем, что имеется ДО знака вопроса. Сам символ "?" и все, что находится после него, обработчик просто-напросто не видит. Да, я тоже не знал этого и часа полтора пытался понять, почему же шаблон ^(.*\?.*)$ у меня отказывается работать. Знак вопроса в адресе страницы? Редирект на главную!В каждом сайте есть файл, который подключается всегда и везде, к тому же подключается в самом начале сценария, еще до обработки скриптов. Наверняка ведь есть такой, правда? Это я сейчас намекаю на файл конфигурации. Ведь если в нем прописаны константы (у особо маниакальных программистов - переменные), содержащие данные доступа для подключения к MySQL, то без подключения этого самого конфига невозможно будет выполнить ни одного SQL-запроса. А значит, решение готово. В этом конфигурационном файле пишем: То есть банально, берем адресную строку, ищем в ней символ "?" и если таковой находится, делаем редирект на главную страницу (констата SITE_URL и содержит URL домена). Все. Какое-то время можно спать спокойно. Впрочем, багоискатели по-прежнему не дремлют. ;) Внимание! При копировании данного материала обязательна прямая текстовая ссылка на эту страницу. << вернутьсяНа эту тему говорят:17 Октября 2011 г. а как спастись от случая, когда
нужно сделать редирект с yandex.ru/page.php?page_id=2 на yandex.ru/cat/2 Если Вам есть что сказать, скажите это прямо здесь и сейчас.При написании комментария можно использовать bb-теги [b][i][u], а также [quote] для цитирования. |
Последние новости:Розетки в общественных местах перестанут быть бесплатными.В Sony придумали, как владельцам кафе можно брать деньги не только за Wi-Fi, но и за электричество.Apple есть в половине семей. Правда, американских.За что любят пользователи Apple эти дорогие "игрушки"?Минздрав предупреждает: iPad вредит Вашему здоровью.Новые технологии приносят не только новые удобства... но и новые болезни.РПЦ призывает выйти из Сети на время Великого поста.Всеволод Чаплин попросил верующих выйти из Интернета. Жаль, что только на время Великого поста.Apple хочет в 3D.Да-да, уважаемый мой читатель, крутящегося во все стороны двумерного мира им уже мало... |









Очень надеюсь, что этот пост был для Вас полезен. А если так - поделитесь ссылкой со своими друзьями. Уверен, они будут не против. :)
А еще лучше выскажите свое мнение по этой теме.