Я знаю, что с ростом количества SQL-инъекций веб-сайты вынуждены ужесточать меры безопасности. Я понимаю, что «придурки» обычно так и поступают.
Почему, например, php?id=x
представляет возможную угрозу для сайта против, скажем, index.php
?
Я знаю, что с ростом количества SQL-инъекций веб-сайты вынуждены ужесточать меры безопасности. Я понимаю, что «придурки» обычно так и поступают.
Почему, например, php?id=x
представляет возможную угрозу для сайта против, скажем, index.php
?
Что ж, как только вы выставите параметры пользователю, злоумышленник знает, что он будет проанализирован. В этом случае show.php?id=foo
может использоваться для загрузки сайта с именем foo
.
В коде это может выглядеть так:
$site = $_GET['id'];
content_query = "SELECT content FROM sites WHERE name ='" + $site + "';";
# do some manual SQL queries
# then output the content
echo("<div id='content'>" . $content . "</div>");
Очевидно, что здесь параметр подвержен внедрению SQL-кода, когда злоумышленник может легко вывести или удалить всю базу данных.
Или на сайте могут быть "скрытые" сайты, на которые нет публичной ссылки, но которые все же доступны. Скажем, у вас есть общедоступные сайты с идентификаторами от 1 до 100, тогда злоумышленник может догадаться, что у вас также есть сайт по адресу show.php?id=101
который вы не хотели ссылаться.
Обратите внимание, что в этом контексте "придурок" - это просто тот, кто не может защитить свой сайт должным образом и обнаружит, что через Google - это не название вектора атаки.