Как лучше предотвратить хакерские атаки, хотелось бы высказать свое личное мнение! Во-первых, бесплатные программы не следует использовать бесплатно. Поскольку вы можете поделиться исходным кодом, злоумышленники также смогут его проанализировать. Если вы обратите внимание на детали, безопасность вашего сайта значительно повысится. Даже если возникает такая уязвимость, как 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, что очень опасно.
Советы по профилактике:
(1) Дайте файлу базы данных сложное и нестандартное имя и поместите его в несколько каталогов. Так называемый нетрадиционный вариант, например, если есть база данных, которая хочет сохранить информацию о книгах, не давайте ей имя book.mdb, а дайте ей странное имя, например d34ksfslf.mdb, и поместите его размещается в нескольких каталогах, таких как ./kdslf/i44/studi/, что еще больше затрудняет хакерам получение файла базы данных Access путем угадывания.
(2) Не записывайте имя базы данных в программе. Некоторые люди любят писать DSN в программе, например:
DBPath = Server.MapPath(cmddb.mdb)
conn.Open driver={Драйвер Microsoft Access (*.mdb)};
Если кто-то получит исходную программу, имя вашей базы данных Access будет сразу видно. Поэтому рекомендуется установить источник данных в ODBC, а затем прописать это в программе:
конн.openshujiyuan
(3) Используйте Access для кодирования и шифрования файлов базы данных. Сначала выберите базу данных (например, сотрудник.mdb) в меню «Инструменты» → «Безопасность» → «Шифровать/дешифровать базу данных», а затем нажмите «ОК». После этого появится окно для сохранения базы данных после шифрования. Вы можете сохранить ее как: «employee1.mdb».
Следует отметить, что вышеуказанное действие не устанавливает пароль для базы данных, а только кодирует файл базы данных. Целью является предотвращение использования другими инструментами для просмотра содержимого файла базы данных.
Далее шифруем базу данных. Сначала открываем закодированный файл сотрудников1.mdb. При открытии выбираем монопольный режим. Затем выберите в меню «Инструменты» → «Безопасность» → «Установить пароль базы данных», а затем введите пароль. Таким образом, даже если кто-то другой получит файл сотрудник1.mdb, он не сможет увидеть содержимое сотрудника1.mdb без пароля.
7. Предотвращение атак с удаленным внедрением
В прошлом этот тип атаки должен был быть относительно распространенным методом атаки, например, POST-атаки. Злоумышленник может изменить значение передаваемых данных по своему желанию для достижения цели атаки. Другой пример: подделка файлов cookie. что более достойно вызвать программист или веб-сайт. Длинное примечание: не используйте COOKIES в качестве метода аутентификации пользователя, иначе вы все равно, что оставить ключ вору.
например:
Если Trim(Request. cookies (uname))=fqy и Request.cookies(upwd) =fqy#e3i5.com, то
……..более…………
Конец, если
Я думаю, что все веб-мастера или друзья, которые любят писать программы, не должны совершать такого рода ошибки. Это действительно непростительно. Мы используем файлы cookie уже много лет. Если вы все еще используете их, вы не можете винить других в краже вашего пароля. Это касается пользователей. Для паролей или входа в систему лучше использовать сеанс, который является наиболее безопасным. Если вы хотите использовать файлы cookie, добавьте еще один фрагмент информации в свои файлы cookie, его случайное значение составляет 64 бита. нужно угадать. Возможный пример:
если нет (rs.BOF или rs.eof), то
логин=истина
Сеанс (имя пользователя и идентификатор сеанса) = Имя пользователя
Сеанс (пароль и идентификатор сеанса) = Пароль
'Response.cookies(имя пользователя)= Имя пользователя
'Response.cookies(Пароль)= Пароль
Давайте поговорим о том, как предотвратить атаки с удаленным внедрением. Распространенной атакой является перетаскивание одного файла отправки формы в локальный каталог и указание формы ACTION=chk.asp на файл, который обрабатывает данные на вашем сервере. Поздравляем, на одной странице таблицы вы подверглись атаке скрипта.
Как мы можем остановить такую удаленную атаку? Это легко сделать. Посмотрите следующий код: Тело программы (9).
<%
server_v1 = Cstr(Request.ServerVariables(HTTP_REFERER))
server_v2 = Cstr(Request.ServerVariables(SERVER_NAME))
если Mid(server_v1,8,len(server_v2))<>server_v2, то
ответ.напишите <br><br><центр>
ответ.написать
response.write Указан неправильный путь. Запрещено отправлять данные вне сайта. Пожалуйста, не меняйте параметры случайно!
ответ.написать
ответ.конец
конец, если
%>
«Лично я считаю, что описанная выше фильтрация кода не очень хороша. Некоторые внешние материалы все еще могут поступать открыто, поэтому я написал еще одну.
«Оно имеет очень хороший фильтрующий эффект, и его рекомендуется использовать.
if instr(request.servervariables(http_referer),http://&request.servervariables(host))<1 then response.write При обработке URL-адреса на сервере произошла ошибка.
Если вы используете какие-либо средства для атаки на сервер, вам повезет, что все ваши операции будут записаны сервером. Мы как можно скорее уведомим Бюро общественной безопасности и Департамент национальной безопасности для расследования вашего IP-адреса.
ответ.конец
конец, если
Тело программы(9)
Я думал, что так все будет хорошо, поэтому добавил некоторые ограничения на страницу таблицы, например, максимальную длину и т. д. Но Бог так недобр, чем больше ты чего-то боишься, тем больше он это сделает. Не забывайте, что злоумышленники могут взломать SQL-инъекцию. Ограничение на длину поля ввода во время атаки. Написать программу SOCKET для изменения HTTP_REFERER? Я не буду. В сети была опубликована такая статья:
----------len.reg-----------------
Редактор реестра Windows версии 5.00
[HKEY_CURRENT_USERSoftware&MicrosoftInternet ExplorerMenuExt расширение]
@=C:Документы и настройкиAdministratorDesktoplen.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></center></html>
Ответ.конец
конец, если
следующий
Добавьте их в свою программу загрузки для проверки, и безопасность вашей программы загрузки значительно повысится.
Что? Вы все еще волнуетесь? Придумайте свой козырь и попросите вашего провайдера веб-хостинга помочь. Войдите на сервер и переименуйте или удалите элементы «shell.application» и «shell.application.1» в идентификаторе PROG. Затем переименуйте или удалите элемент WSCRIPT.SHELL и WSCRIPT.SHELL.1. Хаха, могу смело сказать, что наверное больше половины виртуальных хостов в Китае не поменялись. Я могу только порадоваться, что ваши пользователи очень отзывчивы, иначе... Я удалю, удалю, удалю, удалю, удалю...