PayPal決済モジュールのチェック機構を強化
とりあえずのコードを書いてみた。
なれないPHPだし、PostgreSQLだしで、いいのか悪いのか判断できません。
基本的にEC-CUBE本体から拾ったコードを再利用しただけです。
コードはEC-CUBE 開発コミュニティサイト – フォーラムに投稿してみました。
ソースはこちらから
PayPal決済モジュールのチェック機構を強化する
動作するのか
一応PayPalのテスト環境でテスト済みですが、ご利用は自己責任で。
ツッコミ大歓迎。
とりあえずのコードを書いてみた。
なれないPHPだし、PostgreSQLだしで、いいのか悪いのか判断できません。
基本的にEC-CUBE本体から拾ったコードを再利用しただけです。
コードはEC-CUBE 開発コミュニティサイト – フォーラムに投稿してみました。
ソースはこちらから
PayPal決済モジュールのチェック機構を強化する
一応PayPalのテスト環境でテスト済みですが、ご利用は自己責任で。
ツッコミ大歓迎。
PayPal決済モジュールは支払先のメールアドレス(receiver_email)の正当性しかチェックしていない。
支払われた金額のチェックを行っていないため、(ポストされる内容を変更など)不正な金額を支払ったとしても入金済みにしてしまう。
PayPalから届く入金確認メールの金額と違っていないか確認する必要がある。
また、支払い済みのトランザクションIDの記録やチェックも行っていないため、不正利用される可能性もあると思われる。
(たしか)PayPalからダウンロードしたPerlのサンプルスクリプトにもレスポンスが VERIFIED の場合以下のチェックを行えとある。
# check the $payment_status=Completed
# check that $txn_id has not been previously processed
# check that $receiver_email is your Primary PayPal email
# check that $payment_amount/$payment_currency are correct
ちょっとチェック不足な気がするが・・・。
IPベースのバーチャルホストを利用する場合、NICをIPアドレス分増設するか、1つのNICにIPアドレスを複数割り当てるか、という方法がある。
NICの増設など物理的な変更をしないで済むので、VIFを使ってみる。
※各名称について – VIFとかIPエイリアスとか仮想インターフェイスとかは正確な名称かは分からない。
なお、eth0 は IPアドレス 192.168.1.100 ネットマスク255.255.255.0 とし、追加する仮想インターフェイス(eth0:1)に設定するIPアドレスは 192.168.1.101 ネットマスク255.255.255.0 とする。
ネットワーク > ネットワーク設定 > ネットワークインターフェイスへ進む。
eth0をクリックして進む。
仮想インターフェイスを追加 のリンクをクリック。
IPアドレス、ネットマスク等を設定する。左の入力例ではeth0:1 に192.168.1.101/24 を割り当てる。
参考になりそうな文書
ITmedia エンタープライズ : Linux Tips「1枚のNICに複数のIPアドレスを割り当てたい」
IP エイリアスを使って 1 枚のネットワーク・カードで複数の SSL サイトをホストする