Программирование на Visual Basic

ASP в безопасности:

Введение
Технология интернет-программирования Active Server Pages, от компании Microsoft, появилась сравнительно недавно, но уже успела завоевать любовь тысяч программистов со всего мира. К чему бы это, а? Отвечаю, всё просто: чтобы свободно владеть ASP, достаточно знаний VBScript (JavaScript) и основ HTML. VB-Кодеры прыгают от счастья, "наконец-то и мы сможем делать крутые сайты!". А в это время злобные хакеры потирают руки и разными способами надругаются над трудами бедных программистов… Что, страшно?! Но не всё так плохо, ведь есть же Я :), я смогу защитить твой сайт… хотя нет - "я смогу" - это сильно сказано, правильнее – ты сможешь, а я тебе в этом помогу.

Фильтруй Базар
Каждый мало-мальски приличный сайт всегда содержит некую интерактивность, ну, например, форум, гостевую книгу и т.д. Нехорошо, наверное, получится, если ты через пару дней заглянешь в свой форум, а вместо привычного списка тем на черном фоне будет красоваться надпись "Hacked by Vasya. Буду умерать маладым!". Несколько часов ты будешь биться над вопросом: "Как? Как этому пид[beep]ру удалось надругаться над моим мега крутым форумом?!" Отвечаю: просто ты забыл отфильтровать html-теги в заголовках тем. Да, всё проще некуда!
Решение: Чтобы предотвратить данную проблему, нужно просто фильтровать теги во всех текстовых запросах, принятых от посетителей…кроме пароля, конечно.
Фильтровать теги, с технической точки зрения, не сложно:

FilteredText = replace(request("Message"), "<", "<")
FilteredText = replace(FilteredText, ">", ">")
Response.Write FilteredText

Проверяй закачанные файлы
Сейчас уже никого не удивишь возможностью закачки файлов посетителями. Такой сервис уже стал привычным на большинстве современных форумов. Очень удобно: надоели стандартные аватары, - можно закачать свой… Но что если вместо аватара закачать asp-скрипт, который возьмет под контроль весь сервер, на котором расположен сайт? Последствия могут быть очень плачевными…
Решение: Так уж получилось, что ASP слишком медленный, чтобы иметь возможность закачивать файлы на сервер стандартными средствами. К нам на помощь, как всегда, приходят ActiveX – элементы, одним из таких элементов является ASPSmartUpload, решение будем рассматривать на примере его использования:

Dim mySmartUpload "Объявляю

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") "Создаю объект

"И начали
mySmartUpload.Upload

"Закачиваем файлы
For each file In mySmartUpload.Files

If not file.IsMissing Then

"Начинаем самое главное - проверка
if lcase(trim(right(file.FileName,4))) = ".jpg" then
file.SaveAs("avatars/" & file.FileName)
else
response.write("")
end if
end if

Next

Прикрывай тыл
Сейчас я расскажу тебе об ошибке, которую совершают не только рядовые программисты, но и крупные, авторитетные компании.
Каждый, опять же, приличный сайт имеет админ-интерфейс, т.е. некоторый набор скриптов, с помощью которых осуществляется администрирование сайта. Многие помещают эти скрипты в каталог: www.xxx.ru/admin… или может даже в: www.xxx.ru/admin-admin, помещают и думают, что никто не узнает о существовании этих каталогов. Да, может обычный посетитель и не узнает, но от всевидящих глаз поисковых роботов им не уйти. И однажды какой-нибудь юзер наберет заветный поисковый запрос и попадет прямо в "сверхзасекреченный" админ-интерфейс… Даже трудно представить, что после этого может случиться с твоим сайтом.
Решение: Просто поставь пароль на скрипты:

If request.querystring("pass") >< "MamaPapa" then
Response.redirect ("www.udaff.com")
Response.End
End if

Если дело уже сделано, и ты никак не можешь повлиять на "начинку" скриптов (всякое в жизни бывает), юзай robots.txt:
User-Agent: Lycos
Disallow: /admin/

Всё, пока, пока!
Еще не придумали такой совершенной технологии, которую нельзя было бы сломать. Да и сами понятия "совершенство" и "защищенность", по-моему не совместимы. Но оберегать свои творения стоит, ведь с каждым днём появляется куча левых "хакерских" команд, мемберы которых, не зная даже, что такое компилятор, претендуют на почётное звание Хакер… Теперь ты сможешь дать отпор этим вандалам, но если тебя "закажут" настоящим хакерам, то спасения не будет. Я тебя не пугаю, я говорю тебе о суровой реальности…

Hosted by uCoz