В настоящее время я разрабатываю веб-интерфейс в PHP/HTML для проекта курса базы данных.PHP: сайт, получивший взломанный странно
В принципе, есть поле ввода:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
, что позволяет искать вещи в моей БД.
Вчера вечером, после загрузки моего нового index.php, я обновил страницу и был (был ли я, хотя это был) какой-то Инъекция, потому что моя страница была полностью заполнена спамом («YO MAMAYO MAMAYO MAMA и т. Д.»,).
Я получил форму, используя функцию «htmlspecialchars()
» php. И еще раз, я только что загрузил новый index.php всего 10 минут назад, и страница была заполнена «YO MAMA» сразу после того, как я обновился.
У кого-нибудь есть идея? И как я могу проверить/защитить свою страницу?
Благодаря
EDIT: Код формы заключается в следующем:
<div id="searchbox">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Query database : <input type="text" id="field" name="query">
<input type="submit" name="submit" value="Search!">
</form>
</div>
и я просто обеспечены:
if(isset($_POST['query']) && !empty($_POST['query'])) {
$param = htmlspecialchars($_POST['query'], ENT_QUOTES);
...
Входы я могу дать это ничего, цель это поиск людей или событий или т. д. У меня есть только файл класса базы данных, который я включаю в свой индекс index.php
EDIT2: Sql запрос следующим образом:
SELECT p.idParticipant As id, a.name AS name, c.countryName AS country,
count(g.idGame) AS countGames
FROM Athlete a, Country c, Game g, Participant p, Event e
WHERE a.idAthlete = p.fkAthlete
AND p.fkCountry = c.idCountry
AND p.fkGame = g.idGame
AND g.idGame = e.fkGame
AND a.name LIKE '%$param%'
GROUP BY a.name
ORDER BY a.name;
пытается использовать htmlpurifier для проверки ввода пользователя. – Originative