wikiの規制の仕組みをある程度わかっている荒らし相手に対し、単体項目(IP,ホスト,cookie等)では対処しきれないことがあります。
そこで、現在ありますIP,ホスト,クッキー等に加えて、全てをtabで繋いだ(commaでもかまいません)文字列を対象項目に追加していただけないでしょうか。
それであれば、パターン種別を正規表現としてパターン文字列の文字数制限を緩めていただければ、あとは正規表現でかなり解決できます。
おそらく内部の改修コストもそう高くないかと思いますので、ぜひご検討のほどお願いします。
追記。こちらの正規表現ですが \d+などの表現だと抜けてしまうようです。内部で matchingをしているのは ereg系でしょうか、preg系でしょうか。できれば最大限に正規表現のマッチングパターンを拡張していただけますと非常に助かります。無事ヒットしておりました。申し訳ありません。
追記2:ページ名もconcatしてくださるようお願いします。
追記3:こちらの wikiは pukiwikiベースのオリジナル品だったと記憶しておりますが、もし修正に対するコスト的な問題でこれらの新機能が追加できないようでしたら、該当する部分のみでかまいませんので github/gitlabなどで公開していただきまして、当方が patchを書いて pull reqを投げさせていただくというのはいかがでしょうか。提案まで。
追記。こちらの正規表現ですが \d+などの表現だと抜けてしまうようです。内部で matchingをしているのは ereg系でしょうか、preg系でしょうか。できれば最大限に正規表現のマッチングパターンを拡張していただけますと非常に助かります。
具体的にどのような文字列をマッチさせたいのでしょうか?
大抵はワイルドカード
*
で対応できそうです。ソースとマッチさせたい箇所を教えていただくことはできますか?
たとえば、ページ名X、攻撃者が 255-255-255-255-node.example.comから user agent:BrowserAgent(Mozilla-12)で書き込みをしていて、ドメイン制限であれば\d+-\d+-\d+-\d+-node.example.comでマッチはしますが、その場合ページ名Y(平和なページ)への書き込みまで制限されてしまいますし、同じように user-agent: Chrome(Mozilla...)で acessしてくる人も制限されてしまいます。
cookie, ipについては毎回削除&再接続によって変化させてきますので、それらの論理積を取ったマッチングを取りたいのです。また、対象ページも何ページかに限定されていますので、(X|X1|X2)などでmatchさせたいと考えています。
なるほどです。
それぞれの規制ルールをAND演算でグループ化する感じでしょうか。
01&&02&&03
のように書き、全てがTrueで規制発動ただし、AND演算に記載されている規制ルールIDは単体で規制発動されない
こんな感じでしょうか?
ただ、規制を回避するようなシステムに詳しい荒らしなら、簡単にUA偽装したりブラウザ変えたりしそうです。
わざわざ機能を追加する必要があるかどうか…
https://wikiwiki.jp/pp/faq#08
こちらに書いてあるとおり、救済措置があるので、しばらくページごとSMS認証かけたらいいのではないかと思いました。
複合ルール (高度な設定)を追加しました。
コントロールパネル/規制ルール
https://wikiwiki.jp/sample/-s/4e3dc6ec