В мире, который на сегодняшний день насквозь пронизан компьютерными технологиями, специалисты в области программирования, особенно имеющие дипломированные знания лучших университетов, ценятся так же высоко, как владеющие дипломом дипИФР рус бухгалтеры и другие профессионалы, работающие с инфраструктурой с дипломом Cisco.
Это стало причиной того, что в практику большого количества крупных и средних компаний вошло отправлять не только своих бухгалтеров на семинары МСФО для повышения квалификации, но и программистов – на специальные семинары, например, по вопросам обеспечения безопасности кода и способам борьбы с главными ошибками при программировании на PHP.
Это стало особенно актуальным в свете того, что все чаще через Интернет проходят сведения, содержащие в себе финансовые данные по отчетности в форме принятых US GAAP стандартов и личную информацию пользователей, такую как номер кредитных карт и пароль – для работы удаленно с банковскими операциями, номер кошелька WebMoney и его пароль для приобретения товаров или услуг через Интернет и так далее.
Не рекомендуется использовать require и include, а также открывать непроверенные файлы, имя которых основано на вводе пользователя. Причиной этого является то, что с использованием require() и include() файл будет отображаться как HTML текст, не обработанный в виде кода PHP. Здесь злоумышленник может воспользоваться уязвимостью кода, и «попросить» ваш скрипт подключить вывод паролей с сервера. А кроме того, при вызове скрипта вполне возможно будет послать любой код для выполнения вашим скриптом, а это может быть что угодно: запрос на вывод всех личных данных пользователей и паролей, отображение засекреченной информации или даже полное удаление всей базы данных.
Решением данной проблемы будет проверка кода и создание «Белого списка» страниц. Если же получаемые данные будут не из этого списка, то выводится ошибка и прием прекращается.
Также необходимо избегать неэкранированных запросов, так как в этом случае может произойти ввод не только внешнего имени пользователя, но и ввод внутреннего, то есть возможно присвоить новому пользователю функции и возможности администратора, а это огромный простор для его творчества, и вряд ли оно окажется полезным для вас. Для защиты от подобной ситуации используется свойство “magic_quotes_gpc” , автоматически добавляющее слеш ко всем введенным данным, но в некоторых случаях оно отключено. Чтобы это проверить, достаточно ввести функцию “get_ magic_quotes_gpc”, и если в качестве ответа придет “false”, то нужно применить “addslashes” для добавления слеша во все вводимые данные, что не позволит злоумышленнику воспользоваться вашей оплошностью в данном случае.