Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。
久しぶりにtDiaryに日記を書こうとしたら、プレビューや追記ボタンを押すと、「Internal server error」となってしまい、書けなくなってしまった。 何も設定変更を加えてないし、tDiaryのバージョンもアップデートしていないので4.0.1のままだったのだが、突然書けなくなったので、ソースを読んでみたり、設定をDBから覗いてみたりした。
最終的には、ログが答えを教えてくれた。
Diagnostics: - Protection Method is 1 - Mode is preview - GET is not allowed - Request Method is POST - Referer is another page - Given referer: https://satoryu-diary.herokuapp.com/update.rb - Expected base URI: http://satoryu-diary.herokuapp.com/ - Expected update URI: http://satoryu-diary.herokuapp.com/update.rb - CSRF key is nothing
現在、この日記はCSRF対策の設定としてRefererで確認している。そこで、期待しているベースURIと実際のURIが異なっているために、セキュリティ対策の機能が有効になり、書き込めなかった。
つまるところ、httpsで追記画面から日記を書けない、というのが現状のようです。 とりあえず、最新のソース見ても直ってないようなので、pull requestを書こうぜ、俺さん。