l...@lena.kiev.ua wrote on 18.06.2021 13:19:
>> а можно пример одного-двух доменов, которые попадают под этот match?
> 
> А вот не помню. У меня был один случай, но сейчас я его не найду.
> 
>> хотелось бы посмотреть, как выглядит http ответ.
> 
> HTTP-header (это не тот header, про который дальше)
> и тело, и кажется в <HEADER>...</HEADER> тела эта строка.
> Возможно в метаданных, а не в тексте, поэтому не гуглится с ходу.

я нашёл "UCEPROTECT-Network" только вот в таком виде:

<img alt="Warning for Spammers ! - Member of UCEPROTECT-Network"
src="http://www.uceprotect.net/uceprotect-warning.png"; />

нашёл на странице http://www.le.com.ua/uk/article/11.html

т. е. не на http://le.com.ua/ (а в примере производился http запрос по A
записи домена с указанием названия домена в http заголовке запроса Host.
и даже не на https://www.le.com.ua/ (а возможные редиректы с без www на
с www не учтены) и даже не на https://le.com.ua/ или
https://www.le.com.ua/ (возможные редиректы с http на https тоже не
учтены), а на какой-то левой странице сайта, до которой ещё поди доберись.

далее - использование пробела в четвёртом параметре ${readsocket иногда
приводит к странным результатам.

простой пример:

# exim -be '${readsocket{inet:ukr.net:80}{GET / HTTP/1.0\r\nHost:
ukr.net\r\n\r\n}{4s:shutdown=no}{\n}{socket failure}}'
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 18 Jun 2021 11:16:35 GMT
Content-Type: text/html
Content-Length: 162
Connection: close
Location: http://www.ukr.net/

<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>


всё отлично.

теперь пробел:

# exim -be '${readsocket{inet:ukr.net:80}{GET / HTTP/1.0\r\nHost:
ukr.net\r\n\r\n}{4s:shutdown=no}{ }{socket failure}}'
 </html>nter>nginx</center>anently</h1></center>d>


косяк этот воспроизводится стабильно на штатных результатах http
запросов с 301-ми редиректами nginx.
на большей части остальных ответов я не видел подобной каши в ответе.

исходя из всего вышеуказанного эффективность конструкции

         condition = ${if or{\
                {bool{${lookup dnsdb{a=$sender_address_domain}{0}{1}}}}\
                {!match{${readsocket{inet:$sender_address_domain:80}\
                 {GET / HTTP/1.0\r\nHost: $sender_address_domain\r\n\r\n}\
                 {4s:shutdown=no}{ }{socket failure}}}{UCEPROTECT-Network}}\
                            }}

может оказаться заметно ниже ожидаемой.

вне зависимости, будет подстрока "UCEPROTECT-Network" указана в <head>
или <body>. а содержимое заголовков http ответов будет скорее всего
утеряно при использовании пробела в четвёртом параметре ${readsocket


-- 
Best wishes
Victor Ustugov mailto:vic...@corvax.kiev.ua
JID:           vic...@corvax.kiev.ua
GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc


_______________________________________________
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Ответить