Как лучше предотвратить хакерские атаки, хотелось бы высказать свое личное мнение! Во-первых, бесплатные программы не следует использовать бесплатно. Поскольку вы можете поделиться исходным кодом, злоумышленники также смогут его проанализировать. Если вы обратите внимание на детали, безопасность вашего сайта значительно повысится. Даже если возникает такая уязвимость, как SQL-инъекция, злоумышленник не сможет немедленно отключить ваш сайт.
Благодаря удобству и простоте использования ASP, все больше и больше фоновых программ веб-сайтов используют язык сценариев ASP. Однако, поскольку сам ASP имеет некоторые уязвимости безопасности, хакеры могут воспользоваться этим, если не будут осторожны. На самом деле, безопасность – это не только вопрос сетевых администраторов, программисты также должны обращать внимание на определенные детали безопасности и вырабатывать хорошие привычки в области безопасности, в противном случае это создаст огромные риски для безопасности их веб-сайтов. В настоящее время большинство программ ASP на веб-сайтах имеют те или иные дыры в безопасности, но если вы будете внимательны при написании программ, их все равно можно избежать.
1. Имя пользователя и пароль взломаны.
Принцип атаки: имя пользователя и пароль часто являются тем, что больше всего интересует хакеров. Если исходный код каким-либо образом будет обнаружен, последствия будут серьезными.
Навыки предотвращения: программы, использующие имена пользователей и пароли, лучше всего инкапсулировать на стороне сервера и как можно меньше появляться в файлах ASP. Именам пользователей и паролям, связанным с подключениями к базе данных, следует предоставить минимальные разрешения. Часто встречающиеся имена пользователей и пароли можно записать в скрытый включаемый файл. Если речь идет о подключении к базе данных, в идеале дайте ей разрешение только на выполнение хранимых процедур. Никогда не давайте пользователю напрямую разрешение на изменение, вставку или удаление записей.
2. Принцип атаки с обходом проверки
: большинство программ ASP, которые необходимо проверить, теперь добавляют заявление о суждении в заголовок страницы, но этого недостаточно. Хакеры могут обойти проверку и войти напрямую.
Навыки предотвращения: страницы ASP, которые необходимо проверить, могут отслеживать имя файла предыдущей страницы. Эту страницу могут читать только сеансы, перенесенные с предыдущей страницы.
3. Проблема утечки файлов Inc.
Принцип атаки: когда домашняя страница с ASP создается и не была завершена перед отладкой, некоторые поисковые системы могут автоматически добавлять ее в качестве объекта поиска. Если кто-то воспользуется поисковой системой для поиска этих веб-страниц в это время, он получит местоположение соответствующих файлов и сможет просмотреть подробную информацию о местоположении и структуре базы данных в браузере, тем самым раскрывая полный исходный код.
Советы по предотвращению: программистам следует тщательно отлаживать веб-страницы перед их публикацией; эксперты по безопасности должны усилить защиту файлов ASP, чтобы их не могли видеть внешние пользователи; Во-первых, зашифруйте содержимое файла .inc. Во-вторых, вы также можете использовать файл .asp вместо файла .inc, чтобы пользователи не могли напрямую просматривать исходный код файла из браузера. В имени файла inc не должно использоваться системное значение по умолчанию или имя, имеющее особое значение, которое легко угадать пользователям. Старайтесь использовать неправильные английские буквы.
4. Принцип атаки с автоматической загрузкой резервной копии
: в некоторых инструментах для редактирования программ ASP при создании или изменении файла ASP редактор автоматически создает файл резервной копии. Например, UltraEdit создаст резервную копию файла .bak, если вы создадите или измените его. изменяя some.asp, редактор автоматически создаст файл с именем some.asp.bak. Если вы не удалите этот файл bak, злоумышленник сможет напрямую загрузить файл some.asp.bak, чтобы получить исходную программу some.asp. будет скачать.
Советы по предотвращению: внимательно проверьте свою программу перед ее загрузкой и удалите ненужные документы. Будьте особенно осторожны с файлами с суффиксом BAK.
5.
Принцип атаки с помощью специальных символов: поле ввода является целью хакеров. Они могут нанести ущерб пользовательскому клиенту, введя язык сценария; если поле ввода включает запрос данных, они будут использовать специальные операторы запроса для получения дополнительных данных из базы данных. или даже всю таблицу. Поэтому поле ввода необходимо фильтровать. Однако если проверка достоверности ввода выполняется на клиенте только для повышения эффективности, ее все равно можно обойти.
Навыки предотвращения: в программах ASP, которые обрабатывают поля ввода, такие как доски объявлений и BBS, лучше всего блокировать операторы HTML, JavaScript и VBScript. Если нет особых требований, вы можете ограничить ввод букв и цифр только буквами и цифрами. цифры и блокировать специальные символы. При этом длина входных символов ограничена. И не только проверка достоверности ввода должна выполняться на стороне клиента, но аналогичные проверки должны выполняться и в программе на стороне сервера.
6.
Принцип атаки на уязвимость загрузки базы данных: при использовании Access в качестве серверной базы данных, если кто-то знает или угадывает путь и имя базы данных сервера Access с помощью различных методов, он также может загрузить файл базы данных Access, что очень опасно. . из.
Советы по предотвращению:
(1) Дайте файлу базы данных сложное и нетрадиционное имя и поместите его в несколько каталогов. Так называемый «нетрадиционный», например, если есть база данных, которая хочет сохранить информацию о книгах, не давайте ей имя «book.mdb», а дайте ей странное имя, например d34ksfslf. и поместите его в несколько каталогов, таких как ./kdslf/i44/studi/, чтобы хакерам было еще сложнее получить файл базы данных Access путем угадывания.
(2) Не записывайте имя базы данных в программе. Некоторые любят писать DSN в программе, например:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Если кто-то получит исходную программу, имя вашей базы данных Access будет видно сразу. Поэтому рекомендуется установить источник данных в ODBC, а затем написать это в программе:
conn.open «shujiyuan»
(3) Используйте Access для кодирования и шифрования файла базы данных. Сначала выберите базу данных (например, сотрудник.mdb) в «Инструменты → Безопасность → Шифровать/расшифровать базу данных», а затем нажмите «ОК». После этого появится окно «Зашифрованная база данных Сохранить как». Вы можете сохранить ее как: «employer1». .мдб».
Следует отметить, что вышеуказанное действие не устанавливает пароль для базы данных, а только кодирует файл базы данных. Целью является предотвращение использования другими инструментами для просмотра содержимого файла базы данных.
Далее шифруем базу данных. Сначала открываем закодированный файл сотрудников1.mdb. При открытии выбираем «монопольный» режим. Затем выберите в меню «Инструменты → Безопасность → Установить пароль базы данных» и введите пароль. Таким образом, даже если кто-то другой получит файл сотрудник1.mdb, он не сможет увидеть содержимое сотрудника1.mdb без пароля.
7. Предотвращение атак с удаленным внедрением.
Этот тип атаки в прошлом должен быть относительно распространенным методом атаки, например, атака POST. Злоумышленник может изменить значение передаваемых данных по своему желанию для достижения цели атаки.
Подделка COOKIES, что более выгодно. Это привлекает внимание программиста или веб-мастера. Не используйтеCOOKIES
в
качестве метода аутентификации пользователя. В противном случае вы оставляете ключ ворю.
uname"))=" fqy" и Request.cookies("upwd") ="fqy#e3i5.com" затем
……..более…………
Конец, если
я думаю, что все веб-мастера или друзья, которые любят писать программы, не должны совершать такого рода ошибки. Это действительно непростительно. Мы создаем файлы cookie уже много лет. Если вы все еще используете их, вы не можете винить других в краже ваших. пароль. Когда речь идет о паролях пользователей или логине пользователя, вам лучше использовать сеанс, который является наиболее безопасным. Если вы хотите использовать файлы cookie, добавьте еще один фрагмент информации в свои файлы cookie, SessionID. Его случайное значение. 64 бита. Вам нужно угадать, невозможно. Пример:
если нет (rs.BOF или rs.eof), то.
логин="истина"
Сеанс («имя пользователя» и идентификатор сеанса) = Имя пользователя
Сеанс («пароль» и идентификатор сеанса) = Пароль
'Response.cookies("username")= Имя пользователя
'Response.cookies("Password") = Пароль
Давайте поговорим о том, как предотвратить атаки с удаленным внедрением. Общая атака заключается в том, чтобы перетащить файл отправки одной формы на локальный компьютер и указать форму ACTION="chk.asp" на вашем сервере. обработки файлов данных достаточно. Если вся ваша фильтрация данных находится на одной странице таблицы, то поздравляю, вы подверглись атаке со стороны сценария.
Как можно предотвратить такие удаленные атаки? См. код. следующее: Тело программы ( 9)
<%
server_v1 = Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2 = Cstr(Request.ServerVariables("ИМЯ_СЕРВЕРА"))
если Mid(server_v1,8,len(server_v2))<>server_v2, то
response.write "<br><br><центр>"
ответ.напишите " "
response.write "Путь, который вы указали, неправильный. Отправка данных за пределами сайта запрещена. Пожалуйста, не меняйте параметры!"
ответ.напишите "
"
ответ.конец
конец, если
%>
'Лично я считаю, что приведенная выше фильтрация кода не очень хороша. Некоторые внешние материалы все еще могут поступать открыто, поэтому я написал еще один.
'Этот эффект фильтрации очень хорош, его рекомендуется использовать,
если instr(request. .servervariables("http_referer" )," http://"&request.servervariables("host ") )<1 then response.write "Произошла ошибка на сервере при обработке URL-адреса.
Если вы атакуете сервер любым способом , тогда вам повезет, что все ваши операции будут записаны сервером. Мы как можно скорее уведомим об этом Бюро общественной безопасности и Департамент национальной безопасности для проверки вашего IP-адреса "
response.end
.
конец, если
Тело программы (9)
посчитало, что с этим всё будет хорошо, и добавило некоторые ограничения на страницу формы, типа maxlength и т.д... Но Бог так недобр, чем больше ты чего-то боишься, тем больше вероятность, что это Не забывайте, атаковать. Автор может преодолеть ограничение длины поля ввода во время атак SQL-инъекций. Написать SOCKET-программу для изменения HTTP_REFERER? Я не буду. Такая статья была опубликована на сайте:
------------len.reg-----------------
Редактор реестра Windows версии 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtExtensions]
@="C:Documents and SettingsAdministratorDesktoplen.htm"
"контексты"=dword:00000004
----------конец---------------------
----------len.htm------------------
----------конец----------------------
Использование: Сначала импортируйте len.reg в реестр (запишите путь к файлу)
и затем скопируйте len.htm в указанное место в реестре.
Откройте веб-страницу, поместите курсор в поле ввода, в котором нужно изменить длину, и щелкните правой кнопкой мыши. Если вы видите опцию «Расширение»,
нажмите «Готово». : То же самое можно сделать.
Как быть
со скриптами, ограничивающими входной контент ?Наши ограничения были устранены, а все наши усилия потрачены впустую? Нет, поднимите клавиатуру и скажите «нет». Вернёмся к фильтрации скриптовых символов. Осуществляемая ими инъекция — это не что иное, как скриптовые атаки. Давайте вложим все силы в страницы после ДЕЙСТВИЯ. На странице chk.asp мы отфильтровываем все недопустимые символы. Каков результат? Мы только дали ложный выстрел перед нами и попросили их изменить реестр. Только когда они закончат изменения, они поймут, что то, что они сделали, напрасно.
8.
Мы говорили здесь о троянском коне ASP, и я хотел бы напомнить всем веб-мастерам форума, чтобы они были осторожны при загрузке файлов: Почему после поломки программы форума хост также занят злоумышленниками? Причина... верная! ASP-троян! Абсолютная мерзость. Вирус? Нет. Просто закиньте файл в программу вашего форума и вы всегда сможете его поискать. Было бы странно не блевать кровью. Как предотвратить загрузку троянов ASP на сервер? Метод очень простой. Если ваш форум поддерживает загрузку файлов, укажите формат файла, который вы хотите загрузить. Я не согласен с использованием изменяемых форматов файлов. Заблокируйте их непосредственно из программы. Да, если вы оставите больше удобств для себя, это также оставит больше удобств для злоумышленников. Как определить формат? Я собрал один здесь и изменил его. Вы можете посмотреть:
Тело программы (10)
«Оцените, соответствует ли тип файла частной функции CheckFileExt (fileEXT).
дим Forumupload
Forumupload="gif,jpg,bmp,jpeg"
Forumupload=split(Forumupload,",")
для i = 0 до ubound (Forumupload)
если lcase(fileEXT)=lcase(trim(Forumupload(i))), то
CheckFileExt=истина
выход из функции
еще
CheckFileExt=ложь
конец, если
следующий
Конечная функция
'Проверяем легальность
набора содержимого файла MyFile = server.CreateObject ("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile (sFile, 1) 'Чтение текстового файла sTextAll = lcase(MyText.ReadAll): MyText.close
'Определить опасные операции в файлах пользователя sStr = "8 .getfolder .createfolder .deletefolder .createdirectory
.deletedirectory"
sStr = sStr & ".saveas wscript.shell script.encode"
sNoString = разбиение(sStr," ")
для i = 1 до sNoString(0)
если instr(sTextAll, sNoString(i)) <> 0, то
sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
Response.write "<center><br><big>"& sFileSave &"Файл содержит команды, связанные с рабочими каталогами и т. д."&_
"<br><font color=red>"& middle(sNoString(i),2) &"</font>, из соображений безопасности невозможно загрузить <b>. <b>"&_"</big>< /центр></html>"
Ответ.конец
конец, если
ДалееДобавьте
их в свою программу загрузки для проверки, тогда безопасность вашей программы загрузки значительно повысится.
Что? Вы все еще волнуетесь? Придумайте свой козырь и попросите вашего провайдера веб-хостинга помочь. Войдите на сервер и переименуйте или удалите элементы «shell.application» и «shell.application.1» в идентификаторе PROG. Затем переименуйте или удалите элемент «WSCRIPT.SHELL» и «WSCRIPT.SHELL.1». Хаха, могу смело сказать, что наверное больше половины виртуальных хостов в Китае не поменялись. Я могу только порадоваться, что ваши пользователи очень отзывчивы, иначе... Я удалю, удалю, удалю, удалю, удалю...