Поскольку сценарии выполняются последовательно, текущий исполняемый тег скрипта всегда является последним тегом скрипта на странице до тех пор. Итак, чтобы получить тег скрипта, вы можете сделать:
var scripts = document.getElementsByTagName( 'script' );
var thisScriptTag = scripts[ scripts.length - 1 ];
Принципы, о которых следует помнить, если вы хотите, чтобы ваши приложения были безопасными:
В сети есть несколько отличных книг и статей о том, как сделать ваши приложения безопасными:
Обучение разработчиков лучшим практикам безопасности приложений
Codebashing (платно)
Security Innovation (платно)
Security Compass (платно)
OWASP WebGoat (бесплатно)
Хорошим начальным курсом может быть курс Массачусетского технологического института Компьютерные сети и безопасность . Я бы посоветовал не забывать о конфиденциальности. Конфиденциальность, в некотором смысле, действительно является основой безопасности и не часто рассматривается в технических курсах по безопасности. Вы можете найти некоторые материалы о конфиденциальности в этом курсе Этика и закон применительно к Интернету.
Я предлагаю просмотреть CWE / SANS TOP 25 наиболее опасных ошибок программирования . Он был обновлен на 2010 год с обещанием регулярных обновлений в будущем. Также доступна редакция 2009 .
Из http://cwe.mitre.org/top25/index.html
25 самых опасных ошибок программирования CWE / SANS 2010 года - это список наиболее распространенных и критических ошибок программирования, которые могут привести к серьезным уязвимостям программного обеспечения. Их часто легко найти и легко использовать. Они опасны, потому что часто позволяют злоумышленникам полностью завладеть программным обеспечением, украсть данные или вообще предотвратить работу программного обеспечения.
Список 25 лучших - это инструмент для обучения и повышения осведомленности, который помогает программистам предотвращать виды уязвимостей, которые преследуют отрасль программного обеспечения, путем выявления и предотвращения слишком распространенных ошибок, которые возникают еще до того, как программное обеспечение даже будет отправлено. Заказчики программного обеспечения могут использовать тот же список, чтобы помочь им запросить более безопасное программное обеспечение. Исследователи в области безопасности программного обеспечения могут использовать 25 лучших, чтобы сосредоточиться на узком, но важном подмножестве всех известных слабых мест в системе безопасности. Наконец, менеджеры по программному обеспечению и ИТ-директора могут использовать список 25 лучших в качестве измерителя прогресса в своих усилиях по обеспечению безопасности своего программного обеспечения.
Каждый программист должен знать, как писать код эксплойта.
Не зная, как эксплуатируются системы, вы случайно останавливаете уязвимости. Знание того, как патч-код, абсолютно бессмысленно, если вы не знаете, как тестировать свои патчи. Безопасность — это не просто куча мыслей экспериментов, вы должны быть научными и проверять свои эксперименты.
Правило №1 безопасности для программистов: Не выкручивайте свои собственные
Если вы сами не являетесь экспертом по безопасности и / или криптографом, всегда , чтобы сделать всю работу за вас, используйте хорошо спроектированную, хорошо протестированную и зрелую платформу безопасности, платформу или библиотеку. Эти вещи годами продумываются, исправляются, обновляются и исследуются как экспертами, так и хакерами. Вы хотите получить эти преимущества, а не отказываться от них, пытаясь изобрести велосипед.
Это не значит, что вам не нужно ничего знать о безопасности. Вам определенно нужно знать достаточно, чтобы понять, что вы делаете, и убедиться, что вы правильно используете инструменты. Однако, если вы когда-нибудь начнете писать свой собственный алгоритм криптографии, систему аутентификации, дезинфицирующее средство ввода и т. Д., Остановитесь, сделайте шаг назад и запомните правило № 1.
Безопасность - это процесс, а не продукт.
Многие, похоже, забывают об этом очевидном факте.