Панель администратора работает нормально для обычных пользователей! Для доступа к нему требуется пароль, но когда я обращаюсь к нему с помощью http-редактора acunetix, он открывает панель администратора без проверки. Я использую функцию, чтобы проверить, зарегистрирован ли администратор. Если нет, то перенаправляется на страницу входа! Вот код функции, пожалуйста, помогите мне в этом! Благодарю.Доступ к панели администратора веб-сайта осуществляется без проверки
->full()
функция mysqli_real_escape_string(htmlspecialchar());
->acunetix
хорошо тестер уязвимости приложений.
function admin_check() {
global $users, $mysqli;
if(isset($_COOKIE['username'])){
$username = full($_COOKIE['username']);
$password = full($_COOKIE['password']);
$id = full($_COOKIE['id']);
if(is_numeric($id)){
$id = $id;
if($id < 0){
$id = (-1)*$id;
}
}
else {
$id = 10;
}
$query = "SELECT * FROM $users WHERE username = '{$username}' and password = '{$password}' and id = $id ";
$query_process = mysqli_query($mysqli, $query);
if(!$query_process){
die_message("There was some error checking admin login");
}
$check_rows = mysqli_num_rows($query_process);
if($check_rows != 1){
header("location: login.php");
}
while($rows = mysqli_fetch_assoc($query_process)){
$admin_role = $rows['admin_role'];
}
if($admin_role != 1){
header("location: logout.php");
}
}//end of first if
else {
header("location: login.php");
}
}// end of function
Вы сохраняете критерии входа ** в файлы cookie **. Facepalm! –
Прошли ли какие-либо отладки, чтобы сузить проблему? Является ли инструмент acunetix каким-то образом причиной того, что страница генерирует выходные данные перед заголовками, так что они больше не работают? Вы могли бы подумать, что у вас нет заголовков управления функциями, а функция просто возвращает логическое значение в отношении того, является ли пользователь администратором и имеет перенаправление ручек основной прикладной логики. –
Имя пользователя и пароль на основе файлов cookie? Совсем не хорошо. Вы лучше всего помещаете свой сайт «в ожидании», пока не исправите это и не будете использовать другой метод. –