Переменные окружения используются для хранения настроек и организации межпроцессорного взаимодействия. Недостаток – нулевая защищенность. Существует мнение, что удаленный клиент не в состоянии манипулировать переменными окружения на серверах, а значит и их использование вполне обоснованно и безопасно.
Однако в действительности все да наоборот. FTP, протоколы telnet и другие не только позволяют, даже анонимному клиенту читать, но и менять переменные окружения по собственному желанию. Другими словами, на них не стоит особо надеяться.
Чревато последствиями и хранение в них путей к файлам данных и к библиотека, так как злоумышленник изменив переменную окружения, сможет без труда “подсунуть” программному обеспечению свои “троянизированные” библиотеки, а к чему это приведет все хорошо известно. Тем не менее, описание атак, несколько выходит за рамки протоколов CGI и HTTP, поскольку в данном разделе эта проблема не рассматривается в подробностях, а дается краткая характеристика.
Заключение.
Единственный и самый безопасный способ, гарантирующий 100% возможность избежать ошибок – не пишите программ. Допущенные ошибки, позволяет человеку получить иммунитет, позволяющий избегать подобных ошибок в будущем. Только так, можно получить бесценный опыт, и расти как профессионал своего дела. Слепо следовать совета из многочисленных руководств, гайдов по вопросам безопасности не сильно отразится на качестве Вашего кода – “дыра” появится не в этом месте, так вылезет в другом. Статьи, руководства, учебники не смогут решить все возникшие вопросы и стать панацеей от всех проблем.
Уметь написать надежный, проверенный и вполне безопасный код следует сравнить с ездой на велосипеде – пока сами этому не научитесь, никакие советы Вам не смогут помочь. А если и научились, маловероятно, что сможете вразумительно объяснить другому как стоит держать равновесие и что именно необходимо делать.
Совет – не беритесь сразу за ответственные проекты до тех пор, пока не будет на все 100% уверены в своих умениях и навыках подкрепленный богатым опытом работы.