Курс "Защита информации", кафедра радиотехники, Московский физико-технический институт (МФТИ)

2010: Главная Экзамен Лекции Семинары Проекты Эссе | Преподаватели Литература | Архив: 2009 2008-fall 2008 2007 2006 2005 2004 2003 | English
HTML-версия эссе "2003 Understanding of CGI Security Issues", 2003_Understanding_of_CGI_Security_Issues, 2003, сгенерированная из pdf/rtf.
Конвертация не вcегда корректна. Смотрите исходный pdf.
\n" ) ; print("Hello, $user_Name! It's good to see you!\n"); print ("


Page last update: Fri Jun 10 10:11:26 2005 MSD.
Website last update:
Rambler's Top100 Рейтинг@Mail.ru
\n") ;
Представьте, что произойдет, если помимо имени пользователь введет

John Smith


очевидно результат будет не таким, как вы желаете.
Но вводя HTML в данные, пользователь может не только изменить внешний вид страницы. Представьте, что он ввел Если сервер поддерживает включения, то пользователь может ввести вместо своего имени, и увидит целиком текст вашего секретного плана. Или он может ввести для того, чтобы получить доступ к файлу с паролями. И в худшем случае хакер может ввести вместо своего имени и тогда все данные на диске будут уничтожены.
Есть два способа удаления HTML из данных, полученных от пользователя.
•     Быстрый и небрежный способ - это удалить все символы <> из строки. Сделать это можно с помощью команты на Perl, приведенно ниже.
$user_Input =~ s/<>//g;
•     Более правильный способ, это не удалять эти символы, а заменять их на их коды. Знак меньше заменяется на < а знак больше заменяется на > Ниже приведен пример на Perl.
$user_Input =~ s//>/g;
Заключение
В любом случае при исполнении скрипта необходимо позаботиться о том, чтобы любые данные полученные от пользователя, были предварительно обработаны и проверены на ниличие недопустимых символов, на размер этих данных, и в случае обнаружения несоответствия выдавать ошибку. Это поможет защититься от злобных хакеров.