Повышаем безопасность Opencart 2x в ручную!

Тема в разделе "Инструкции и FAQ", создана пользователем elvindesign, 6 июн 2016.

  1. elvindesign

    elvindesign Новичок

    Сообщения:
    24
    Симпатии:
    6
    Добрый день хочу поделится своим опытом.:rolleyes:.
    Хочу рассказать о том как можно повысить безопасность доступа в ваш онлайн магазин.
    Кроме длинного пароля существует еще одна ступень безопасности доступ через адресную строку к админ панели http://"название вашего магазина"/admin
    но как видим это задано по умолчанию как ее поменять?
    Заходим в корневую папку где установили наш магазин и находим папку admin заметим что в браузере мы также прописываем /admin меняем название папки на какой вам по душе название что бы злоумышленник не узнал названия.
    Следующий шаг переходим в папку admin которую переименовали на admin45 например. Находим там файл config.php и изменяем содержимое текстовым редактором.
    В моем примере это localhost.
    Просто ищем имя admin и переименовываем в название вашей папки которую переименовали ранее в нашем случае admin45.
    Пример файла config.php из корневой папки admin.
    PHP:
    <?php
    // HTTP
    define('HTTP_SERVER''http://localhost/osshop/admin45/');
    define('HTTP_CATALOG''http://localhost/osshop/');

    // HTTPS
    define('HTTPS_SERVER''http://localhost/osshop/admin45/');
    define('HTTPS_CATALOG''http://localhost/osshop/');

    // DIR
    define('DIR_APPLICATION''/opt/lampp/htdocs/osshop/admin45/');
    define('DIR_SYSTEM''/opt/lampp/htdocs/osshop/system/');
    define('DIR_LANGUAGE''/opt/lampp/htdocs/osshop/admin45/language/');
    define('DIR_TEMPLATE''/opt/lampp/htdocs/osshop/admin45/view/template/');
    define('DIR_CONFIG''/opt/lampp/htdocs/osshop/system/config/');
    define('DIR_IMAGE''/opt/lampp/htdocs/osshop/image/');
    define('DIR_CACHE''/opt/lampp/htdocs/osshop/system/storage/cache/');
    define('DIR_DOWNLOAD''/opt/lampp/htdocs/osshop/system/storage/download/');
    define('DIR_LOGS''/opt/lampp/htdocs/osshop/system/storage/logs/');
    define('DIR_MODIFICATION''/opt/lampp/htdocs/osshop/system/storage/modification/');
    define('DIR_UPLOAD''/opt/lampp/htdocs/osshop/system/storage/upload/');
    define('DIR_CATALOG''/opt/lampp/htdocs/osshop/catalog/');
    И уже в браузере пишем http://localhost/osshop/admin45
     
    solunski.d нравится это.
  2. Juzosif

    Juzosif Активный пользователь

    Сообщения:
    262
    Симпатии:
    20
    Можно еще не пере именуя папку admin
    в этой папки создаем файл .htaccess и в нем добавляем вот этот код
    PHP:
    Order deny,allow
    Deny from all
    Allow from ВАШ IP
    Только Вам будет одному доступен папка админа или тэх сотрудникам чьи IP будет добавлен.
    Следующей строкой Allow from IP 2 и Allow from IP3
     
    DiMoss и elvindesign нравится это.
  3. elvindesign

    elvindesign Новичок

    Сообщения:
    24
    Симпатии:
    6
    Спасибо за дополнение:)
     
  4. Juzosif

    Juzosif Активный пользователь

    Сообщения:
    262
    Симпатии:
    20
    Можно еще не пере именуя папку admin
    Не которые модификаторы используют папку админ.
    Придется в модификаторах указать новые название папку админа.
    Иначе не будет Ваши модификаторы работать!
     
  5. elvindesign

    elvindesign Новичок

    Сообщения:
    24
    Симпатии:
    6
    А если это в начале установки?
     
  6. Juzosif

    Juzosif Активный пользователь

    Сообщения:
    262
    Симпатии:
    20
    Можно сделать перед установкой эти действие!
    Это не влияет в установке.
     
  7. elvindesign

    elvindesign Новичок

    Сообщения:
    24
    Симпатии:
    6
    Спасибо продолжу изучать:)
     
  8. tsap

    tsap Продвинутый пользователь

    Сообщения:
    230
    Симпатии:
    131
  9. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    тогда теряется смысл переименования ))
     
  10. tsap

    tsap Продвинутый пользователь

    Сообщения:
    230
    Симпатии:
    131
    поисковики пойдут гулять по всей админке, или я ошибаюсь?
     
  11. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    не пойдут. Обычно не ходят, есл специально не скормили. Особенно если доступ закрыт через htaccess
     
  12. tsap

    tsap Продвинутый пользователь

    Сообщения:
    230
    Симпатии:
    131
    зачем тогда в коробке присутствует Disallow: /admin?
     
  13. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    на всякий случай ))
     
  14. KirillKern

    KirillKern Активный пользователь

    Сообщения:
    102
    Симпатии:
    34
    Называется как задолбать себя в ручную потом переименованием всех путей в модулях и т.д.


    админка/просмотр/коммон/

    берём текст из хеадера, добавляем его в логин в самом начале.
    а потом перед всем этим вписываем:

    <?php
    if (isset($_GET['-SADMIN-']))
    {$seckey = $_GET['-SADMIN-'];
    setcookie ("-SADMIN-", $_GET['-SADMIN-']);}
    else if
    (isset($_COOKIE['-SADMIN-]))
    {$seckey = $_COOKIE['-SADMIN-']; }
    else {$seckey = '';}
    if ($seckey != '-RSDI-') { header("HTTP/1.1 301 Moved Permanently");
    header("Location: ip-saved.php");
    exit(); } else { ?>


    где -SADMIN- и -RSDI- это секретные слова (комбинация двух ключей, как вам удобней).
    ip-saved.php - это куда слать народ, который случайно стукнется в админку.
    у меня это файл сохранения всех айпишников.


    в результате имеем

    доступ к админке получается по адресу

    домен/admin/?СЕКРЕТНОЕ-СЛОВО-1=СЕКРЕТНОЕ-СЛОВО-2

    если параметр отсутствует - отправитесь на ip-saved.php


    параллельно советую вырезать футер со страницы авторизации.
    50% ХАКЕРОВ, которые ещё даже среднюю школу не закончили - это решение поставит в тупик... они даже не врубят на какой cms ваш магаз пашет...
     
    Последнее редактирование: 23 июн 2016
    alexoz12, tsap и Vlad нравится это.
  15. KirillKern

    KirillKern Активный пользователь

    Сообщения:
    102
    Симпатии:
    34
    вот вам написанный модуль, править секрет слова в тексте мода.

    Изменяет url страницы авторизации в админку по дефолту на domain.com/admin/?secretkey=mysecretkey
    Параметр secretkey можно легко заменить на свой в этом учаcтке кода. Выделяю жирным, что стоит менять.
    Код:
    $mysecretkey='mysecretkey';
    предложенное автором мода решение - это аутизм какой-то.
     

    Вложения:

    • Desktop.zip
      Размер файла:
      1,1 КБ
      Просмотров:
      45
    Последнее редактирование модератором: 24 июн 2016
    Iseres и lavlan нравится это.
  16. West

    West Новичок

    Сообщения:
    3
    Симпатии:
    0
    а старый добрый .htpasswd почему не устраивает?
    1. кидаем в папку /home/папка сайта/admin/.htaccess следующего содержания:
    Код:
    AuthType Basic 
    AuthName "Private zone. Only for administrator!"
    AuthUserFile  /home/.htpasswd  /* здесь полный путь до файла .htpasswd (желательно выше уровнем чем папка сайта, чтобы извне прямого доступа не было, если не будете использовать секцию Files для запрета доступа  )*/
    require valid-user
    <Files .htpasswd>
       deny from all  #запрет доступа из браузера к .htpasswd
    </Files>
    
    2. идем на какой - нибудь сайт htpasswd generator (например, http://www.htaccesstools.com/htpasswd-generator/ ). указываем произвольные имя и пароль. После генерации вставляем полученное значение имя:хэш пароля в .htpasswd

    3. Если все сделано верно, то при наборе в браузере http://имя_сайта/admin, получаем дополнительный запрос на ввод логина и пароля сгенерированного на шаге 2.

    4. Profit

    Забыли пароль. Удалили .htaccess из папки /admin или сгенерировали новый пароль и вошли.
     
  17. KirillKern

    KirillKern Активный пользователь

    Сообщения:
    102
    Симпатии:
    34
    лишний ввод паролей.
    я с мобилы часто в админку захожу..помнить все свои комбинации паролей - как-то не удобно...

    давайте круче пойдём... и через тот же хтаксесс запретим доступ со всех айпишников кроме своего да и всё )))))))))


    чот модератор как-то кривовато там выше моё сообщение подправил.
    и такое чувство, что я себе присваиваю авторство от кролика.

    короче на опенкартфоруме, в поиске по дополнениям вбивайте "Изменяет url админки".
    если тут внешние ссылки не желательны.

    (почему бы не защититься нофоллов?)
     
    solunski.d нравится это.
  18. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    @KirillKen Был у меня случай, кинули меня. Теперь похожий метод использую для наказания кидалов.
     
  19. KirillKern

    KirillKern Активный пользователь

    Сообщения:
    102
    Симпатии:
    34
    сохраняем как пхп файл. его кладём в /админ/
    на него делаем указку в скрипте в хеадере.

    Код:
    <?php
    $file="admin.log";    //куда пишем логи
    $col_zap=4999;        //строк в файле не более
    
    function getRealIpAddr() {
      if (!empty($_SERVER['HTTP_CLIENT_IP']))        // Определяем IP
      { $ip=$_SERVER['HTTP_CLIENT_IP']; }
      elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))    // Если IP идёт через прокси
      { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
      else { $ip=$_SERVER['REMOTE_ADDR']; }
      return $ip;
    }
    
    if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';}
    elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
    else { $bot=$_SERVER['HTTP_USER_AGENT']; }
    $ref = $_SERVER['HTTP_REFERER'];
    $ip = getRealIpAddr();
        $ip = getRealIpAddr();
        $date = date("H:i:s d.m.Y");        //дата события
        $home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];    //какая страница сайта
        $lines = file($file);
        while(count($lines) > $col_zap) array_shift($lines);
        $lines[] = $ip."|".$date."|".$bot."|".$home."|".$ref."\r\n";
        file_put_contents($file, $lines);
    echo "ip saved, suka"
    ?>

    будет сохранять все ipшники, которые тыкаются на админку, в админ.лог в каталоге
    а оттуда их уже и в хтаксесс переносить. чтоб неповадно было - ну или просто палок в колёса добавить


    в результате школьник получает такую красоту:
    [​IMG]
    его айпишник уходит в лог.
     
    Последнее редактирование: 26 июн 2016
  20. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Да был клиент, кинул на деньги, даже предоплата была, надумывал что куплю себе... Теперь стоит защита, достаточно ввести пароль в адрес и все под чистую, а копия всегда на локалке есть, деньги заплатят, все на свои места верну.
    Вообще надо вшить лицензию, деньги просрочили, отрубил.
     
    Juzosif и alirus нравится это.