PEAK XOOPS - News in englishin japanese

Archive | RSS |
  
Poster : GIJOE on 2007-08-23 03:57:31 (13633 reads)

in englishin japanese
今年の6月頃から自動登録ボットが出回っているので、その対策をProtector用プラグインとして実装してみました。

最新版のProtectorで、filters_disabled に入っているpostcommon_register_insert_js_check.php を、filters_enabled にコピーすることで動作するようになります。

Protectorさえちゃんとインストールされていれば、コアHackは不要です。register.php へのアクセスだけに、透過的に働きます。

視覚障害者を排除するCaptchaは嫌いなので、JavaScriptによる対策です。こんなのでも十分に効くんじゃないかと見積もってます。(どうしても必要なら、このタイプのプラグインをCaptchaにするのもおそらく簡単です。もちろんコアHackなしで)

一応、XOOPS 2.0.16a-JP および XCL 2.1.1 にて動作確認を取っていますが、これを有効にした後でも、ちゃんとユーザ登録が機能するか確認してください。その際、JavaScriptを切ったらユーザ登録できないことも確認できれば最善です。

なお、Protectorの一般設定における「信頼できるIP」に含まれていると、このプラグインまで動作が回ってきません(つまり無条件でユーザ登録できる)。
ボット対策が生きていることを確認するためには、信頼できるIP以外で確認してください。

0 comments

Poster : GIJOE on 2007-07-12 18:06:02 (9492 reads)

in englishin japanese
本家版XOOPSの2.0.14/15/16は、2.0.x というバージョンナンバーでありながら、互換性を大幅に失う形で機能拡張してしまった、困ったバージョンです。

正直言って、世界中の皆さんにも、XOOPS 2.0.16a-JPという安定版を使って欲しいところですが、なぜか日本以外では、圧倒的にXOOPS 2.0.16が利用されているようです。(不思議としか言い様がないのですが)

「どちらのコアチームにも与しない」と明言した以上、2.0.16もある程度サポートしないわけにはいかないでしょう。仕方ないので渋々、D3モジュール群の 2.0.16 対応をしてみました。

まず最初は、D3モジュールの土台となるaltsysです。0.55で、2.0.16における動作不良を一通り潰してみました。

あまりにも、テンプレートの仕様変更が酷いので、迷ったらコンパイルキャッシュを消す、という方針にしてます。

個々のD3モジュールについては、今後、徐々に対応していきます。

新しい本家コアチームが、このパッチを入れてくれるだけで、互換性も大幅に改善されて、コアチームもモジュール開発者もユーザも、すべてが幸せになるはずんですけどねえ。

本家も新しいコアチームを作ったのなら、まずはここから修正してくれませんかね。


Poster : GIJOE on 2007-07-06 06:22:23 (9174 reads)

in englishin japanese


0.32以降、d3pipesで、管理画面のAjaxを実装してみましたが、意外と知られていないのでここにも書きます。

キャプチャー画面を見れば判るように、「ドラッグ&ドロップによる並び替え」と「ジョイントタイプを選んだ時に自動的にオプションフォームが切り替わる」という2つの機能を実装してます。

これらは、common/lib と呼ばれるJavaScriptライブラリをXOOPS公開側にコピーして初めて機能します。
http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=104

ちなみに、この管理画面で使っているのは、BCOOLさんのbc_admin01です。
http://demo.2bcool.net/
altsysの管理画面テーマ機能用に最適化されたテーマで、とても使いやすいのが特長です。

なお、altsysの管理画面テーマ機能からいくつか不具合が見つかったので、出来ればaltsysもついでに最新版に上げておいてください。


Poster : GIJOE on 2007-06-13 06:03:31 (18229 reads)

in englishin japanese

http://larholm.com/2007/06/11/phpmailer-0day-remote-execution/

この件、恥ずかしながら、大垣さんのブログから知りました。(やはり大垣さんは素晴らしい!)
http://blog.ohgaki.net/index.php/yohgaki/2007/06/12/phpmailera_sa_a_sa_a_ca_sa_ca_sa_ma_ma_s

この穴を突けば、攻撃者がいきなりコマンドを実行できます。

XOOPSも、phpmailerを利用してますので、本来なら緊急の穴なのですが、実はデフォルトがphp mail() であるため、ここをあえてsendmailに変更した人だけが対象となります。

とにかく、一般設定->メール設定において、メール送信方法がsendmailとなっていないことを確認してください。通常、sendmailをコマンドとして利用できるなら、php mail()関数だって利用できるはずです。(よほど変な設定のホスティングサービスでもなければ)

とりあえず、Protector-3.04 では、このチェックも入れてみました。
メール設定がsendmailだったら、「いますぐ変更して!」という旨のアラートを出します。

検索でヒットするように、Protectorが出力するアラートメッセージを貼り付けておきます。

"phpmailer security hole! Change the preferences of mail from "sendmail" to another, or upgrade the core right now!"


Poster : GIJOE on 2007-06-11 05:19:05 (9009 reads)

in englishin japanese
前回の解析ジョイントは、サイトの新着情報などから、HTMLのヘディングを取得する、というかなり苦しい状況を想定しました。そのため、どの記事のリンクも同じになってしまいますし、公開時間が取得時間になってしまってます。

同じHTMLのみのサイトでも、もう少し構造的な情報が提供されていれば、RSSと遜色ないデータ取得が可能です。

そのサンプルとして作ったのが、Linkhtml という解析ジョイントです。d3pipes最新版には含まれています。

取得したい情報はやはり以下の4つです。それを正規表現でなんとか見つけ出します。

'heading' : 見出し
'pubtime' : yyyy-mm-dd等の表記であれば、それを自動的にUnixTimestampに変換します
'link' : 見出しを囲む<a>タグからリンクを抽出します。
'fingerprint' : ここではlinkと同じです。

Linkhtmlを使ったパイプの構成例はこんな感じになります。


 0 外部から取得         snoopy      (対象ページのURI)
10 コード変換(UTF8へ)   mbstring    (対象ページのエンコーディング)
20 XML解析              linkhtml    #([0-9/]{10}).*href=\"([^"]+)\" \>(.*)\</a\>#iU
30 コード変換(UTF8から) mbstring    EUC-JP (内部エンコーディング)
40 ローカル保存         moduledb    86400


とにかく、linkhtmlは、オプションに指定すべき正規表現が難しいですね。この例だと、あらゆるリンクがヒットする可能性があります。

基本は、()で囲むべき要素は3つあって、それぞれ、日時・リンクURI・見出し(リンクURI・見出し・日時の順でも可)に相当するということです。そこから先は、各サイトのHTMLがどうなっているかによって、個別対応するしかないでしょう。

Read more... | 999 bytes more |0 comments

« 1 ... 7 8 9 (10) 11 12 13 ... 55 »
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!