GrAnd CMS Master

Joined: 21 Oct 2005 Posts: 766 Location: г. Коломна
|
Posted: 03 Jul 2006 11:52 (Mon) Post subject: v2,3| Программа проверки корректности отправителя |
|
|
Иногда, с целью введения пользователей и антиспам-фильтров в заблуждение, программы рассылки спама при обмене командами SMTP-протокола в команду "MAIL FROM:" подставляют адрес некоего пользователя из домена получателя. Т.е. подделываются под ситуацию, когда письмо посылается внутри одного домена, в надежде, что такой почтовый обмен в меньшей степени контролируется различными фильтрами.
Обычно только правая часть адреса содержит корректные данные - имя домена. Левая часть, напротив, содержит чаще всего имя несуществующего аккаунта, по которому и можно производить дополнительную проверку. Если домен отправителя совпадает с локальным доменом, но аккаунт в локальном домене не зарегистрирован, то такое отправление является подозрительным.
Следующая консольная программа анализирует Inf-файл письма, нахожит в нем адрес отправителя и, если домен отправителя совпадает с локальным, проверяет, зарегистрирован ли данный аккаунт в локальном домене. Результаты проверок возвращаются в виде кода завершения программы и могут быть проанализированы пакетным файлом:
Code: | 0 - домен отправителя совпадает с локальным и его аккаунт зарегистрирован в локальном домене.
1 - отправитель не принадлежит локальному домену.
2 - домен отправителя совпадает с локальным, но его аккаунт не зарегистрирован в локальном домене.
3 - прочие ошибки. |
Программе передаются 2 параметра - имена файлов информации о посте и файла конфигурации CMS (включая путь и расширение).
Т.к. программа читает и анализирует файл конфигурации при помощи обработчиков XML, то она работоспособна только начиная с CMS v2.04b3. Более ранние версии CMS по v2.04b2 включительно поддерживали формат файлов конфигурации, несколько отличающийся от спецификаций XML.
Программа написана на Delphi. Т.к. стандартные средства обработки XML-документов в Delphi включают в себя только минимальный набор необходимых процедур, мною была использована свободно распространяемая открытая библиотека SimpleXML. Даннная библиотека приведена ниже и расчитана для компиляции в среде Delphi 5. Для более поздних версий может понадобиться внесение некоторых изменений. Например мною для Delphi 6 в интерфейсной части модуля SimpleXML было добавлено подключение модуля Variants (в приводимых текстах библиотеки все оставлено "as is").
Пример пакетного файла для удаления писем, приходящих якобы из локального почтового домена, но от несуществующих пользователей:
Code: | @ECHO OFF
UsrExist.exe Queue\%1.inf Config\server.cfg
IF ERRORLEVEL 2 GOTO NoExist
GOTO :EOF
:NoExist
IF ERRORLEVEL 3 GOTO :EOF
DEL Queue\%1.msg |
Такой пакетник следует вызывать как приложение для обработки проходящих писем. Как обычно - с параметром %Message%.
Description: |
Простая и удобная библиотека работы с XML-документами. Скопируйте модули SimpleXML и Emulate туда, куда вам удобно для подключения. Например, в папку с разрабатываемой программой. |
|
 Download |
Filename: |
SimpleXML.rar |
Filesize: |
74.48 KB |
Downloaded: |
3146 Time(s) |
Description: |
Программа анализа корректности аккаунта отправителя. А также ее исходники. |
|
 Download |
Filename: |
UsrExist.rar |
Filesize: |
72.59 KB |
Downloaded: |
3274 Time(s) |
_________________ Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец! |
|