Рубрики

Безопасное кодирование — что это такое?

Так ты думаешь, что можешь кодировать? Что ж, это здорово знать … Миру определенно нужно больше фанатов и ботаников, таких как ты и я … Но безопасны ли ваши программы? Вот о чем вся эта статья.

Как программист, это не только ваша работа, но и моральная ответственность за обеспечение того, чтобы ваши коды не имели границ, которые впоследствии могут быть использованы любым другим хакером Black Hat. Вот что такое безопасное кодирование . Если вы выполните быстрый поиск в Google о безопасном кодировании, первой ссылкой, которая привлечет ваше внимание, будет наша собственная вики.

Безопасное кодирование — это практика разработки компьютерного программного обеспечения таким образом, чтобы предотвратить случайное внедрение уязвимостей в системе безопасности. Дефекты, ошибки и логические ошибки неизменно являются основной причиной часто используемых уязвимостей программного обеспечения.

Ладно! Достаточно жаргона … Что это на самом деле значит? Позвольте привести пример. Теперь, так как я заклинатель змей, я буду использовать Python 2.7x…

# test_run.py

pswd ="MY PASSWORD"

not_secret ="Geeks rock!"

  

inputVal = input("Please enter number of geeks") # ОЧЕНЬ ПЛОХАЯ ИДЕЯ

print "There are", inputVal,"geeks here, chanting", not_secret

Теперь попробуйте и попробуйте … Он успешно компилируется, и вы знаете, что, он дает желаемый результат! Итак, вот что я получил, когда попробовал разные входы …

Run — 1

Пожалуйста, введите количество гиков 5

            There are 5 geeks here, chanting Geeks rock!

Run — 2

          Пожалуйста, введите количество вундеркиндов dir ()

There are [‘pswd’, ‘not_secret’, ‘__builtins__’, ‘__doc__’, ‘__file__’,
‘__name__’, ‘__package__’] geeks here, chanting Geeks rock!

Run — 3

          Пожалуйста, введите количество вундеркиндов PSWD

          There are MY PASSWORD geeks here, chanting Geeks rock!

Если вы до сих пор этого не осознавали, позвольте мне заявить об этом … Программа работала отлично! Но не так, как нам хотелось … Он распечатал наши секретные данные … Теперь вы не можете винить в этом язык, и вы не можете винить программиста … Он / она сделал то, что ему было предложено сделать … Это Здесь безопасное кодирование вступает в игру. Теперь этот пример был просто маленьким, очень маленьким. Существует бесконечное количество возможностей использования программы. Все, что вам нужно, это ум и опыт использования уязвимостей. И если вы работаете в области сетевой безопасности , то найм программиста, который не знает или совсем мало знает о стандартах безопасного кодирования, может оказаться самой большой ошибкой, которую вы можете совершить. Таким образом, чтобы иметь безопасное профессиональное будущее, становится необходимостью иметь полное знание о стандартах безопасного кодирования.

Теперь, кто может решить, какой безопасный способ кодирования? Это не то, что может сделать один программист. К счастью, нам не нужно об этом беспокоиться. Пойдите и проверьте Стандарты кодирования SEI CERT . Он содержит очень хороший набор рекомендуемых шагов, которые необходимо предпринять, чтобы убедиться, что ваша программа безопасна, а также отсортирована в соответствии с языками программирования — C, C ++, Java, Perl и Android. Но, к сожалению, для самого простого языка (на мой взгляд) таких стандартов не дано. Означает ли это, что программа на Python всегда безопасна? НЕТ !! К счастью, некоторые энтузиасты Python выдвинули список похожих рекомендаций для Python и привели к рождению того, что сегодня известно как PEP 0008 . Известный как Руководство по стилю для кода Python , он был создан в 2001 году.

С исчерпывающим списком «безопасных» и «небезопасных» программ, он является обязательным для использования любым программистом Python.

Теперь достаточно теории! Давайте вернемся к некоторому материалу кодирования! Теперь я собираюсь использовать термин «Hi-Fi», который вы можете использовать в дальнейшем, чтобы произвести впечатление на кого-либо, и этот термин называется « Межсайтовый скриптинг» (XSS) . В данном сценарии, когда на каждом сайте есть раздел комментариев, в котором посетители могут делиться своим опытом, XSS стал часто используемым методом хакеров (не очень хороший термин!) Для кражи данных / запуска распределенного отказа в обслуживании ( DDOS) атакует / устанавливает вирусы и вредоносные программы в систему клиента и много других «не очень хороших» действий.

Большинство разделов комментариев позволяют пользователям писать в HTML-коде, чтобы обеспечить возможность форматирования. Это означает, что комментарий сначала обрабатывается, а затем результат печатается на сайте. Итак, предположим, что вместо комментария я пишу код JavaScript, подобный этому:

window.alert(“Your comment has been received! – Geeks4Geeks”);

Теперь, исходя из того, что я только что обсуждал, код будет обработан, и клиент получит всплывающее окно с упоминанием: « Ваш комментарий получен! — Geeks4Geeks ». Звучит неплохо … Но представьте себе возможности. Можно написать простой скрипт, который будет загружать вредоносное ПО / вирус в систему клиента, или показывать рекламу с контентом, который привлечет его / ее к клику на него, который будет присутствовать в IFrame, который может украсть куки (это называется Clickjacking ), что также приводит к тому, что известно как Session Hijacking ; Варианты не ограничены! Так что нам делать? Опять же, решение заключается в безопасном кодировании! Просто чтобы дать вам пример того, как вы можете избежать XSS и Clickjacking с помощью Django:

#Clickjacking

response = render_to_response(“webpage.html”, {},
context_instance=RequestContext(request))
response[‘X-Frame-Options’] = ‘DENY’ #Frame Killing
reponse[‘Content-Security-Policy’] = “frame-ancestors ‘none’”
return response

# XSS

#Django по умолчанию экранирует HTML, поэтому большинство программ будут защищены от #XSS-атак

** {{содержание}} ** # безопасно

** {{content | safe}} ** # Превосходный побег, не очень хорошая идея

Рекомендуемые посты:

Безопасное кодирование — что это такое?

0.00 (0%) 0 votes