[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[postfix-jp:01762] Re: regexp in body_checks



Postfixで利用する正規表現ライブラリはデフォルトでPOSIXのregexですが、
Perl流のpcreもビルド時に選べます。Postfixをバイナリパッケージから
インストールしたなど、どちらを使っているのか分からない場合は
"postconf -m"コマンドでどれか調べられます。

On Mon, 01 Jul 2002 13:19:32 +0900
"Shinichiro HIDA" <shinichiro@xxxxxxxxxxxxx> wrote:

> >    /^[:space:]*name=.*\.exe$/ REJECT
> 
> これ、ダメみたいですね。[:space:] を \s や [<space><tab>]にしてみても
> 弾きませんでした。

[:space:]というのはPOSIXでの記法、\sはPCREでの記法になります。
どちらのライブラリを使用しているのか確認の上、
マニュアルにあたるのが確実だと思います。

このパターン(ファイル名を囲う引用符を補っておきます)だと
name="xxxx.exe"
 name="xxxx.exe"
  name="xxxx.exe"
といった行頭に任意の空白を含んだパターンにマッチしますが(それ以外にも)、
マルチパートのヘッダー中にname=xxx.exeが確実に単独行で現れるとは限らず、
Content-type: application/octet-stream; name="xxxx.exe"
のような現れ方もあると思います。
ここら辺の書き方はメーラーによって様々でしょう。

正規表現では行単位でしかパターンマッチしないので、
ヘッダーをきちんと捉えようとするならば
MIMEとしてパースしてやらないといけないようです。
HTMLについても同様の問題がありますです。

どうしてもフィルタリングが必要ならばFILTER_READMEで述べられている
外部フィルタに頼らなければならないと思いますが、
限界があるのを分かってbody_checkを使うというのは有りだと思います。


添付ファイルのフィルタはpostfix-usersでも度々話題に上がっているようです。
例えばこのスレッドなど参考になるでしょうか
http://groups.google.com/groups?hl=ja&lr=&ie=UTF-8&inlang=ja&threadm=8l76sa%241n62%241%40FreeBSD.csie.NCTU.edu.tw&rnum=1&prev=/groups%3Fq%3Dcontent-type%2Bgroup:mailing.postfix.users%26hl%3Dja%26lr%3D%26ie%3DUTF-8%26inlang%3Dja%26selm%3D8l76sa%25241n62%25241%2540FreeBSD.csie.NCTU.edu.tw%26rnum%3D1

References
[postfix-jp:01758] regexp in body_checks, Shinichiro HIDA
[postfix-jp:01759] Re: regexp in body_checks, Shinichiro HIDA

[検索ページ] [Postfix-JP ML Home]