Защита моей собственной панели администрирования - PullRequest
1 голос
/ 03 сентября 2011

Мне нужны способы защиты моей собственной панели администрирования php. Я читал здесь о некоторых:

  • Простая аутентификация с использованием apache2.conf
  • Использование ssl для отправки зашифрованных паролей
  • Разместите инструменты в полностью отдельном домене
  • Следует также использовать правильный файл robots.txt
  • Использование chmod 777, когда я хочу использовать и сделать chmod 000, когда я закончу

Но у каждого есть проблемы. Если я хочу сделать это с apache2.conf, я должен использовать ssl тоже. Только этим он защищен?

Если я загружу инструменты в другой домен и использую robots.txt, чтобы «спрятать» их, кто-нибудь сможет их найти?

Использование chmod похоже на « непрофессионально »

Что вы используете для защиты панели администрирования?

Ответы [ 2 ]

1 голос
/ 03 сентября 2011

Но у каждого есть проблемы.Если я хочу сделать это с apache2.conf, я должен использовать ssl тоже.Только с этим это обеспечено?

Вроде.Если вы не используете ssl, пароли отправляются через сеть в незашифрованном виде, если кто-то прослушивает ваше сообщение, он узнает пароль.При этом, как правило, кто-то не может прослушать ваше общение с сервером, если только одна из участвующих сторон не была скомпрометирована или вы общаетесь через небезопасный носитель, такой как незашифрованный публичный wlan.

Если я загружу инструменты в другой домен и использую robots.txt, чтобы «спрятать» их, кто-нибудь найдет их?

Да, если они угадают URL.robots.txt просто скрывает вас от поисковых систем, но не работает для защиты вашей админ-панели от нежелательного доступа.

Использование chmod похоже на «непрофессионал»

И небезопасно.Это означает, что когда вы работаете в админ-панели, все остальные тоже могут.Не делайте этого.

Что вы используете?

Контроль доступа с помощью Apache (через глобальную конфигурацию или файл .htaccess) с использованием SSL.Поначалу может быть немного больно настраивать, но для данной проблемы это действительно единственный выбор, который имеет какой-либо смысл.

0 голосов
/ 03 сентября 2011

Что вы можете сделать, это использовать класс php, который требует, чтобы вы вошли в систему или зарегистрировались на вашем сайте. Вы можете найти много из быстрого Google .

Затем вы должны создать на своем веб-сайте API, который отправляет данные обратно только в том случае, если вы аутентифицированы. Вот пример, который будет читать данные из базы данных MySQL:

<?php
require_once $_SERVER["DOCUMENT_ROOT"] . "/includes/accounts.class.php"; //Change this to the path to your authentication script
header("Content-Type: application/json"); //Important if you're using json
$account = new Accounts(); //A fictional Accounts class is opened
$json = array();
if (!$account->authenticated or $account->rights != "administrator") { //Ask the class if the user is not an admin
    $json = array(
        "error" => "Not an administrator"
    );
} else {
    $query = mysqli_query($link, "SELECT * FROM example"); //Assuming you use mysqli and there's a table called example
    if (!$query or mysqli_num_rows($query) < 1) {
        $json = array(
            "error" => "Query returned no results"
        );
    } else {
        while ($row = mysqli_fetch_array($query)) { //Read the data from the table
            $json[] = $row;
        }
    }
}
echo json_encode($json); //Send the data as a json string

Помните, что приведенный выше код является лишь примером того, как вы будете выполнять сценарии такого рода. Вам нужно будет изменить его для работы с классом и базой данных, которые вы используете. Теперь вы можете создать собственную программу для внутреннего использования, которая входит в систему и запрашивает данные из вашего API. Это может быть веб-сайт, работающий на внутреннем сервере, программа Windows или приложение для смартфона. Все, что для этого нужно, - это заполнить форму в журнале на веб-странице, затем отправить HTTP-запрос приведенному выше сценарию и декодировать результат json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...