Exim에서 하나 이상의 오염된 문을 이해하고 수정하려고 노력하고 있지만 해당 문을 어떻게 참조해야 하는지 모르겠습니다.
제가 생각하기에 슬픔을 안겨준 문장은 다음과 같습니다.
domainlist local_domains = @:domain1.org:domain2.org:domain2.org:\
pgsql;select domain from virtdomains where domain='$domain'
실행 시 제공되는 출력은 다음과 같습니다.exim -C /etc/exim/exim.conf -d+all -bv [email protected]
간단하다고 확신하지만 설정하지 않았으며 이제 이를 유지하는 방법을 배우려고 하면 업그레이드할 수 없습니다.
...
11:06:52 33945 routing [email protected]
11:06:52 33945 --------> dnslookup router <--------
11:06:52 33945 local_part=test domain=test.com
11:06:52 33945 checking domains
11:06:52 33945 ╭considering: @:domain1.org:domain2.org:domain3.org:pgsql;select domain from virtdomains where domain='$domain'
11:06:52 33945 ├───────text: @:domain1.org:domain2.org:domain3.org:pgsql;select domain from virtdomains where domain='
11:06:52 33945 ├considering: $domain'
11:06:52 33945 ├considering: '
11:06:52 33945 ├───────text: '
11:06:52 33945 ├──expanding: @:domain1.org:domain2.org:domain3.org:pgsql;select domain from virtdomains where domain='$domain'
11:06:52 33945 ╰─────result: @:domain1.org:domain2.org:domain3.org:pgsql;select domain from virtdomains where domain='test.com'
11:06:52 33945 ╰──(tainted)
11:06:52 33945 search_open: pgsql "NULL"
11:06:52 33945 search_find: file="NULL"
11:06:52 33945 key="select domain from virtdomains where domain='test.com'" partial=-1 affix=NULL starflags=0 opts=NULL
11:06:52 33945 LRU list:
11:06:52 33945 internal_search_find: file="NULL"
11:06:52 33945 type=pgsql key="select domain from virtdomains where domain='test.com'" opts=NULL
11:06:52 33945 database lookup required for select domain from virtdomains where domain='test.com'
11:06:52 33945 (tainted)
11:06:52 33945 LOG: MAIN PANIC
11:06:52 33945 tainted search query is not properly quoted (router dnslookup, /etc/exim/exim.conf 746): select domain from virtdomains where domain='test.com'
11:06:52 33945 search_type 15 (pgsql) quoting -1 (none)
11:06:52 33945 PostgreSQL query: "select domain from virtdomains where domain='test.com'" opts 'NULL'11:06:52 33945 tainted search query is not properly quoted (router dnslookup, /etc/exim/exim.conf 746): select domain from virtdomains where domain='test.com'
11:06:52 33945 search_type 15 (pgsql) quoting -1 (none)
...
답변1
4개월 안에 이 문제가 해결되길 바라지만 혹시 모르니... 저는 지금 이 문제를 해결하기 위해 MySQL 쿼리를 사용하고 있습니다. where 절에서 "domain" 매개변수를 참조하여 쿼리 자체를 수정할 수 있습니다.
domainlist local_domains = @:domain1.org:domain2.org:domain2.org:\
pgsql;select domain from virtdomains where domain='${quote_pgsql:$domain}'
내가 겪고 있는 문제는 결과 자체가 문제가 있는 것으로 간주된다는 것입니다.