Помощник
|
Как обезопасить подключающий скрипт от атаки |
sc2r2bey
|
Сообщение
#1
|
||
|
|
||
|
|||
НЕПЛОХОЙ |
7.9.2009, 15:23;
Ответить: НЕПЛОХОЙ
Сообщение
#2
|
|
[php]if(!preg_match("/^[a-z0-9]+$/i",$module)) $module = '';
switch ($module) { case "gb": $file = "module/gb.php"; break; case "news": $file = "module/news.php"; break; default: $file = "module/index.php"; } if (is_readable($file)) { include($file); } else { echo "Страница не найдена"; }[/php] это почти такой же код только более безопастный |
|
|
ZiTosS |
7.9.2009, 21:20;
Ответить: ZiTosS
Сообщение
#3
|
|
sc2r2bey, Евгений правильно написал, но это только в простых системах уместно. Ведь во множестве движков модули добавляются в независимости от ядра, и тут бы я всё же сделал включение модулей через взаимодействие с ядром. То есть у нас в ядре есть функция с 3 параметрами включения условий.
1) "Имя для ассоциации" 2) "Подключаемый файл" 3) "метод взаимодействия"(где прослушивать, не обязательное) POST, GET, SESSION, COOKIE, что-то другое Повторяю ещё раз это на подобии API взаимодействия ядра и модулей. Больше не для чего это использовать не нужно. |
|
|
sc2r2bey
|
Сообщение
#4
|
|
я ничего не понял, можно на пальцах пояснить :)
-------------------- программирую web и для we |
|
|
ZiTosS |
13.9.2009, 14:20;
Ответить: ZiTosS
Сообщение
#5
|
|
sc2r2bey, ну что не понятного:
Ядро - это основа всякого движка без дополнений, то есть это сама основа заложенная изначально без подключаемых модулей. То есть к примеру в ядрол входят: 1) Шаблоны и их обработка; 2) Изначальные функции и классы для оптимальной работы системы; 3) Файлы-обработчики изначальные для общения клиента с сервером. Модули(например): 1) Вывод контента из базы(новости, статьи, акции и др.) 2) Комментарии 3) Дневники 4) собственные блоги 5) Работа связанная с зарегистрированным пользователем(к примеру ЛС или вывод последних прочитанных тем) и тд. Так вот модули должны взаимодействовать с ядром через API, то есть в БД у вас есть таблица с модулями, каким образом обнаружить, что нужно подключить модуль(прослушка POST SESSION и тд), путь к модулю(не обязательно, всё зависит от организации расширяемости). Так вот в ядре у нас есть функция которая просто запрашивает все включенные модули и поочередно проверяет нужно ли их включить в страницу. А как уж всё остальное организовать это надо усердно думать... Вообще некоторые будут против подобного, потому что скажут, что подобный подход только грузит систему, не лучше ли будет авключать модули только там где они нужны. Но я считаю, что пара милисекунд да и не в крупных проектах это не так существенно, да и плюс существует сжатие6 и кеширование контента, что увеличивает производительность. |
|
|
sc2r2bey
|
Сообщение
#6
|
|
супер! а как создается ядро и API давай попробуем рразобрать на самом элементарном уровне и премере?
-------------------- программирую web и для we |
|
|
ZiTosS |
13.9.2009, 23:52;
Ответить: ZiTosS
Сообщение
#7
|
|
sc2r2bey, если бы у меня было на это время, пока не могу...
|
|
|
extonec |
25.9.2009, 15:30;
Ответить: extonec
Сообщение
#8
|
|
Если я правильно понял ваш диалог то мне сюда. (небольшой вопрос)
есть страница 1 на ней ссылка на страницу 2 с параметром ?tag=2 , это отбражается в адресной строке слышал это опасно sql инъекции вроде бы. как мне поступить? 1. Еще незнаю как но читал инфу что можно спрятать подобные запросы через .htaccess, гарантирует ли это безопасность? (врятли ...) 2. А если сделать при создании таблицы в БД(mysql) ограничение на количество символов? т.е. таблица 1 поле tag макс значение "2" - это поможет или нет?. 3. Видел инфу о проверке соответствия значения и если оно соответствует заданным правилам то запрос идет. (это лучший вариант?) P.S. мой первый пост на форуме, всех приветствую. |
|
|
sc2r2bey
|
Сообщение
#9
|
|
есть страница 1 на ней ссылка на страницу 2 с параметром ?tag=2 , это отбражается в адресной строке слышал это опасно sql инъекции вроде бы. можно обработать полученную GET переменную функцией intval() [php]$tag = intval($_GET['tag']);[/php] а потом производить манипуляции с переменной $tag -------------------- программирую web и для we |
|
|
ZiTosS |
29.9.2009, 1:49;
Ответить: ZiTosS
Сообщение
#10
|
|
extonec,
есть страница 1 на ней ссылка на страницу 2 с параметром ?tag=2 , это отбражается в адресной строке слышал это опасно sql инъекции вроде бы. как мне поступить? Выше правильно написали 1. Еще незнаю как но читал инфу что можно спрятать подобные запросы через .htaccess, гарантирует ли это безопасность? (врятли ...) Ну спрятать не спрятать а вот ограничить ввод символов по маске очень даже возможно, но настоятельно не рекомендую полагаться на .htaccess маски. 2. А если сделать при создании таблицы в БД(mysql) ограничение на количество символов? т.е. таблица 1 поле tag макс значение "2" - это поможет или нет?. Что-то вы сами не понимаете что говорите, как вы создадите ограничение на макс значение? 3. Видел инфу о проверке соответствия значения и если оно соответствует заданным правилам то запрос идет. (это лучший вариант?) Конечно правила это чёткость в действиях, но слишком загромождает код. Нужно придумать для себя оптимальный вариант и конечно же продумать проверку всех параметров которые могут быть подменены. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Как в пушсетках покупают по 100-200 тысяч кликов за день? | 2 | Boymaster | 695 | Вчера, 17:52 автор: Boymaster |
|
Продам скрипт rtb exchange suite - система перепродажи трафика dsp/ssp в реальном времени. | 5 | buypushplatform | 4303 | 23.4.2024, 21:02 автор: 100ftd |
|
Как вы отдыхаете от работы за компом | 151 | adw-kupon.ru | 19862 | 23.4.2024, 13:52 автор: Vmir |
|
Как вы бросили работу и перешли на заработок с сайтов? | 20 | uahomka | 3475 | 23.4.2024, 11:54 автор: Skyworker |
|
Как вывести деньги в Украине с заблокированного Юмани ? | 30 | freeax | 5041 | 20.4.2024, 16:49 автор: Liudmila |
Текстовая версия | Сейчас: 25.4.2024, 12:49 |