クリックジャッキング対策
1 2 3 |
// クリックジャッキング対策 header("X-Frame-Options: SAMEORIGIN"); header("Content-Security-Policy: frame-ancestors 'self'"); |
在宅プログラマーの備忘録として2005年に始めたブログです。
クリックジャッキング対策
1 2 3 |
// クリックジャッキング対策 header("X-Frame-Options: SAMEORIGIN"); header("Content-Security-Policy: frame-ancestors 'self'"); |
httpsのみCookieを許可する
1 2 |
// httpsのみ許可する ini_set('session.cookie_secure', 1); |
セッションIDインジェクション対策
1 2 |
// セッションIDインジェクション対策(透過セッションID禁止) ini_set('session.use_trans_sid', 0); |
JavaScriptインジェクション対策
1 2 3 4 |
// JavaScriptインジェクション対策1(http経由のみアクセス可能にする) ini_set('session.cookie_httponly', 1); // JavaScriptインジェクション対策2(不正なセッションIDを拒否) ini_set('session.user_strict_mode', 1); |
ブラウザで動作するWEBシステムで、
使用しているプログラムをcronから呼んだらうまくいかない、
WEBアクセスしたときと結果が違う、
ということはないでしょうか。
cronからPHPをコマンドで実行した場合、
環境変数などの実行環境がWEBとは異なるため
全く同じ動作を行う保証がなく、予測しにくい不具合を生みます。
そこで私は、バッチ処理などでcronからphpを呼ぶ場合は
wgetを使っています。
こんな感じでwgetを呼ぶシェルをcronにセットするだけです。
batch.sh
1 2 3 |
url=https://example.com/test/test1.php?param1=AAA log=/tmp/test1.log wget -q --no-check-certificate ${url} -O ${log} |
これでWEBアクセスと同じ動作を行わせることができます。
重複実行防止処理はphp側で行っています。
もし時間のかかる処理ならwgetのオプションにタイムアウトの指定をします。
1 |
wget --read-timeout=3600 -q --no-check-certificate ${url} -O ${log} |