質問: json_decode($HTTP_RAW_POST_DATA, true); // 受け取ったJSONデータ // ここに実行したいコードを書く exec('/さくらサーバ.gitインストールディレクトリ/git pull origin master');//linuxコマンド実行 file_put_contents($LOG_FILE, date("[Y-m-d H:i:s]")." ".$_SERVER['REMOTE_ADDR']." git pulled: ".$payload['after']." ".$payload['commits'][0]['message']."\n", FILE_APPEND|LOCK_EX);//ログファイルに書き込む } else { // 認証失敗 file_put_contents($LOG_FILE, date("[Y-m-d H:i:s]")." invalid access: ".$_SERVER['REMOTE_ADDR']."\n", FILE_APPEND|LOCK_EX); } ``` --- 質問 -- ・他にどこか確認するポイントはありますでしょうか。 ・セキュリティ的にも突っ込みがありましたらお願いいたします。 ・現状本番サーバにノンベアリポジトリを配置し秘密鍵を.sshディレクトリにおいていますがconfigファイルにパスワードを書いておくのとどちらがリスクが高いでしょうか。そもそも全く別の方法を取ったほうがリスクは減らせるのでしょうか。
回答: ``` exec('/さくらサーバ.gitインストールディレクトリ/git pull origin master'); ``` この部分、スクリプト合ってますか? ディレクトリの移動とgitコマンドを混同してませんか? 下のようにしてみればどうでしょうか。 ``` chdir('/さくらサーバ.gitインストールディレクトリ/'); exec('git pull origin master'); ```