Закрытый кодАвтор: Дроздовский М. Не существует абсолютно защищенных приложений. Всегда (особенно в сложных приложениях) можно найти какие-нибудь ошибки. Но одно дело — искать ошибки, изучая исходный код приложения и совсем другое — методом "научного тыка". Допустим, есть такой дырявый кусок кода: $connec = mysql_connect("localhost", "", "")
mysql_select_db("zzzzz", $connec)mysql_query("INSERT INTO sometable(uid, ddata) values($uid, '$ddata') ", $connec)..... . .... . . . . ?> Здесь можно использовать SQL-injection - атаку. Но, согласитесь, будет очень трудно выполнить SQL-injection, не зная структуры таблиц и названий полей. Или, например, в этом куске кода есть ошибка переопределения переменных: if ($pass == "password") { $xfff = "yes"; } ... .... if ($xfff == "yes") { echo "Пользователь авторизирован"; ..... } else {
echo "Пользователь не авторизирован"; .... ...
} ..... ?> Можно было бы пройти эту "авторизацию" без пароля, вызвав скрипт как script.php?xfff=yes , но, не имея исходного кода, практически невозможно обнаружить (а тем более использовать) подобную уязвимость. Все эти (а также многие другие примеры, не приведенные в статье) примеры подводят нас к итогу: Закрытость исходного кода в определенной степени увеличивает защищенность приложения. Но не забывайте, что не существует абсолютно безопасных приложений, и закрытость исходного кода — не панацея от ошибок.
|