Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Как заставить работать сайт с отключенной директивой "register_globals"

#21 alex159

alex159
  • Пользователь
  • 492 сообщений
  • Репутация: 32
0

Отправлено 30 Октябрь 2013 - 22:51

1putnik, через htaccess глупо каждый символ защищать.
1. Попробуйте переименовать админку (рас уже о безопасности заговорили).
2. Найдите файл который подключен ко всем файлам. Если это боле менее нормальный движок то это должен быть index.php
Определите функцию
function defender_xss($arr){
$filter = array("<", ">","="," (",")",";","/"," ","+");
foreach($arr as $num=>$xss){
$arr[$num]=str_replace ($filter, "", $xss);
}
return $arr;
}
И в самом верху файла поставьте
$_REQUEST=defender_xss($_REQUEST);
Теперь все GET и POST запросы будут проходить проверку на наличие таких символов<", ">","="," (",")",";","/","(пробел)","+"
  • 0

#22 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 30 Октябрь 2013 - 23:15

Ну вот например способ

RewriteEngine On
RewriteCond %{THE_REQUEST} ?
RewriteCond %{REQUEST_URI} !/admin/
RewriteCond %{REQUEST_URI} !/admin.php
RewriteRule .* - [G]
Если я не ошибаюсь, но это я проверил, во 2-й строчке запрет символа "?", в 3-й - разрешение из дериктории "admin", в 4-й - разрешение файлов с расширением php в дериктории "admin"

Т.е. таким способом предлагаете запретить все GET-запросы? А если без них сайту не обойтись? Например, поиск по сайту? Ну и я вполне могу передать тогда эти данные POST'ом. Повторюсь, включенная директива register_globals не означает, что сайт становится уязвимым... уязвим сайт или нет зависит от степени дырявости его кода, но не от директивы, которая, опять же повторюсь, и сейчас включена на многих хостингах.
Ну и если уж быть точным, то таким образом запрещаются URL-адреса, но не отдельные символы.
  • 0


#23 alex159

alex159
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 30 Октябрь 2013 - 23:47

register_globals=on может быть опасна когда дырявый код и даже если она выключена.
То также может быть опасна. Просто инъекция по другому формулируется.

Фильтр который выше я немного переделал. Он убирает основные знаки для инъекций и xss.
Только я там немного ошибся.
Фильтр который выше он для форм типа входа, регистрации и тд.

А что бы защитить сайт от XSS
Поменяйте строку
$filter = array("<", ">","="," (",")",";","/"," ","+");
на
$filter = array("<", ">","="," (",")",";","/");

В итоге выйдет 2 фильтра для форм входа и регистрации. И для всего сайта.
  • 0

#24 1putnik

1putnik
    Topic Starter
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 31 Октябрь 2013 - 01:14

Спасибо всем, кто откликнулся!!!
Утешили и обнадежили. Все советы приму к сведению.
Этого "register_globals on" помоему все начинающие боятся как огня.
Вот так вот и учюсь на ошибках, читать то и смотреть всякие курсы лень. Пока ведь сам не столкнешься с какой нибудь проблемой, не узнаешь что тебе нужно знать.
Пока все, будут еще вопросы по этой теме - отпишусь.
  • 0


Оформление форума – IPBSkins.ru