mitmproxyを使う

http(s)通信の内容を覗くのに、Windowsだと「Fiddler」を使っていたけど、
Macでも覗きたい。
なので、Mac向けのツールを探す。

「Charles」がよさげなのだけど、有料なので30分で動作がとまってしまう。
無料なツールで「mitmproxy」がつかえそう。

1. インストール
ぐぐってインストール

$ mitmproxy --version
Mitmproxy version: 2.0.2 (release version)
Python version: 3.6.3
Platform: Darwin-16.7.0-x86_64-i386-64bit
SSL version: OpenSSL 1.1.0f 25 May 2017
Mac version: 10.12.6 ('', '', '') x86_64

2. 起動
「test_script.py」にpythonスクリプトを書く

$ mitmproxy -s test_script.py

3. スクリプト

# -*- coding: utf-8 -*-
from mitmproxy import http
from mitmproxy import ctx


#################################################
# リクエストの改ざん
def request(flow:http.HTTPFlow):
    # methodを指定
    if flow.request.method == "POST":
        ###
        # APIのアクセス先URLを一部変更する
        if "/api/test/rel" in flow.request.url:
            # URLを置換
            flow.request.url = flow.request.url.replace("/dev","/test")
            ctx.log.info(flow.request.url)

        ###
        # formデータの変更(または追加)
        if "/api/test2/" in flow.request.url:
            # formに存在していれば変更、なければ追加
            flow.request.urlencoded_form["hogehoge"] = "piyo"
    elif flow.request.method == "GET":
        if "/api/test3" in flow.request.url:
            # クエリストリングの書き換え or 追加
            flow.request.query["hogehoge"] = "10"

#################################################
# レスポンスの改ざん
def response(flow: http.HTTPFlow):
    if flow.request.method == "POST":
        if "/api/test4" in flow.request.url:
            flow.response.status_code = 500;
        elif "/api/test5" in flow.request.url:
            flow.response.status_code = 408;
        else:
            flow.response.content = b" " # 空になる

AnkhSVN

VisualStudioでSubversionを使う。

0.VisualStudioをインストールする(2012)
1.Subversion、AnkhSVNをインストールする
Visual Studio 2012を使っているので、

をインストール。
(AnkhSVN 2.4.12443 - Subversion 1.7 support for Microsoft Visual Studio 2005-2013.)
2.VisualStudioでAnkhSVNがインストールされていることを確認する。
メニュー[ツール]>[オプション]より、「ソース管理」にAnkhSVNが選択できるようになっているかどうか。
表示されているなら設定しておく。
3.既にチェックアウト済みのプロジェクト関連づける
ソリューションエクスプローラーからプロジェクトの右クリックメニューより「Add to Subversion・・・」を選択して、
Subversionの接続をする
4.コンテキストメニューからSubversionの操作ができるようになる

phpインストール

Homebrewでphp5.4をmacにインストールしようとしたら、
MacにデフォルトでインストールされているPHPと重複してインストールできない。。
なぜか、php5.3をインストールした後だと、php5.4がインストールできた。

brew install php53

で、まずは5.3をインストール。
次に

brew install php54

で、5.4をインストール。

php -v
PHP 5.3.28 (cli) (built: Dec 17 2013 20:29:49)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

バージョンが5.3!
phpのリンク先を変更。

brew unlink php53
brew link php54

php -v
PHP 5.4.23 (cli) (built: Dec 17 2013 20:37:21)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

php5.4。

phpの参照先は以下になっていること。

which php
/usr/local/bin/php

macのローカルPCでeccubeをインストールする。
仕事で使ってるバージョンは少し前のバージョンなので、とりあえずダウンロードできる
最新版をインストールしてみる。

  • eccubeダウンロード

https://www.ec-cube.net/download/
バージョンは「eccube-2.13.1」

他のwebアプリも動かしているので、ドキュメントルートをaliasで指定する

Alias /eccube /<ファイルを設置したパス>/eccube/html

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all

  • インストール

http://localhost/eccube/install
にアクセスする。
→インストール画面がでたー

フォルダの権限が足りないところを、エラーメッセージどおりに変更していく。

DBの設定やら、管理画面のpath設定を完了すると、eccubeが無事にインストール完了。

さらっと動かすと、会員登録のメールとか来て驚いた。。
メールサーバの設定した覚えはないのになぁ。
どこで変えるんだろう。