OpenPNEのツッコミどころ

OpenPNEでおかしなところを挙げていきます。

携帯電話のメールアドレスが正しく判別できない

携帯のアドレスかどうかを以下のコードで判別してますが、、

webapp/init.inc

// 携帯メールのドメイン名
$GLOBALS['OpenPNE']['KTAI_DOMAINS'] = array(
    'docomo.ne.jp',
    'ezweb.ne.jp',
    'softbank.ne.jp',
    'd.vodafone.ne.jp',
    'h.vodafone.ne.jp',
    't.vodafone.ne.jp',
    'c.vodafone.ne.jp',
    'r.vodafone.ne.jp',
    'k.vodafone.ne.jp',
    'n.vodafone.ne.jp',
    'q.vodafone.ne.jp',
    's.vodafone.ne.jp',
    'pdx.ne.jp',
    'di.pdx.ne.jp',
    'dj.pdx.ne.jp',
    'dk.pdx.ne.jp',
    'wm.pdx.ne.jp',
    'disney.ne.jp',
);

webapp/lib/util/util.php

function is_ktai_mail_address($mail)
{
    $pieces = explode('@', $mail);
    $domain = array_pop($pieces);

    return in_array($domain, $GLOBALS['OpenPNE']['KTAI_DOMAINS']);
}

メールアドレスのアットマーク『@』以降が、$GLOBALS['OpenPNE']['KTAI_DOMAINS']配列にあれば、携帯電話と判断しています。

えーと、これのどこがおかしいの?って思う人がいるかもしれませんね。
「普通に考えたら、これで全部でしょ?まさかiPhoneの『i.softbank.jp』が抜けてるって程度じゃない」
って言ったあなたは『普通』の人です。

『普通』の人以外のアドレスがあるんです。

auの法人向けビジネスメールアドレスは、携帯電話ですが
○○@△△.biz.ezweb.ne.jp
というアドレスです。

LDAP認証のエスケープ漏れ

ここについては、漏れがあったのですが、どこだか忘れました。
確かパスワードのエスケープが足りなかったんだと思います。

LDAP認証を使ってる人は少ないうえ、エスケープ対象文字も5つとごくまれなケースです。

magic_quotes対策の漏れ

webapp/init.inc内で
magic_quotes_gpcについて、$_GET、$_POST、$_REQUESTについては対策がされています。

gpcってGET、POST、COOKIEの意味です。

COOKIEの処理が抜けてます。
OpenPNEではクッキーは重要な使い方はされていないので、カスタマイズするときには注意が必要です。

関連記事

スポンサーリンク

String.gsub メソッド 文字列の置換

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る