MyPost

Google chromeのCSRF対策のCookie設定の対策

先日Googleから発表されたCSRF対策でセキュアな環境が確認できないサイトではエラーを出すという仕様。

 

既にディベロッパーツールではエラーが出るようになっている。

A cookie associated with a cross-site resource at http://*****/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

このサイトでおすすめしているNginxで設定する場合、まずsame-site属性を設定する必要があるようだ。

 参考:ウェブティ株式会社様『様々な環境下でCookieをSameSite=None; Secureに設定して従来通りの挙動に変更する』

まず、php.iniのセッションのフェーズに

session.cookie_samesite=None

を追記してやる。

 

次に、Cookieの設定を変更してやる必要があるようなんだけど、どこで設定するのか分からない、CakePHPなんて触ったこと無い。

とりあえず色々調べていたら、どうやらここで設定しているらしいことを見つけた。

~home/public_html/vendors/cakephp/cakephp/lib/Cake/Controller/Component/CookieComponent.php

 

ここで記述されている、

public $secure = false;

public $secure = ture;

に変えてやると、とりあえずエラーは消えた。

 

アップデートの際には上書きされて消えてしまうと思うので、必ずアップデート後も再度書き換える必要があると思う。

 

※テスト環境では消えたけどこのサイトでは消えない・・・。なぜだ・・・。

0

.gitattributesの場所

 

Webフォントを使用する際、Gitで管理されているソフトの場合だと自サイトとGitとの間で改行コードの相違が起きるらしく、エラーが出る。

参考:ts0818のブログ『『Failed to decode downloaded font』から始まるエラー』

エラー内容

Failed to decode downloaded font: <URL>
OTS parsing error: invalid version tag

そこで下記のファイルを編集し、齟齬を解決する。

/nayuta.xsrv.jp/public_html/vendors/cakephp/cakephp/.gitattributes

上記ファイルの中に下記を追記

*.otf binary
*.eot binary
*.svg binary
*.ttf binary
*.woff binary

これで問題ないかも。

0

NetCommons3のインストールで内部エラーが出る

最近ちょこちょこお客様から引き合いをいただくので、インストールを何度もやっているんですが、毎回毎回忘れるので備忘録も兼ねてここでちゃんと書いておこうかと思いました。

 

えとね、

 

 

NetCommons3.2以前のVer.は PHP.7.2以上ではインストールできません。

2019年秋追記:3.3以降は普通にインストールできるので、 最新バージョンでインストールしましょう。

 

というのは、エラーログの内容見るとね、

 

mod_fcgid: stderr: PHP Fatal error: Cannot use 'object' as class name as it is reserved

 

ってのが出てるので、なんか変数被ってるとかそんなんだろね。うん。たぶんね。

 

で、php7.1.18とか、PHPバージョン切り替えの設定とかで下げてあげるとうまくいきます。

ちなみにインストール後にPHP7.2に戻してもとりあえず動くけど、会員管理のプラグインが内部エラー吐くので、オススメしません。

 

なんかエックスサーバーの新機能で、エックスアクセラレータっていうのがあるんだけど、

Xアクセラレータ Ver.1 静的ファイルの高速化と同時アクセス数の拡張が行われます。

Xアクセラレータ Ver.2 「Ver.1」の特徴に加えて、PHPプログラムが高速化されます。

これのVer.2がね、7.2以上じゃないと使えないんだよね。

せっかくだから使いたい!って思うけどしゃーないね。

 

ということで、NetCommons3を新規インストールする時は、PHPのバージョンを7.1.18などに落としてから行いましょう。

 

0

インフォメーション imagickのパス

とあるお方からご指摘いただいていて、書き忘れていたことがあります。

imagickです。

エックスサーバーのPHPには既にimagickのライブラリがインストールされています。

ですが、そのままでは使えるようになっておりません。

そこで、php.iniを編集して使えるように書き加えてやる必要があります。

 

ということで、インストールのページに下記を追記しました。

 

 

-------------------------------

あと、NetCommons3の機能で画像サイズ変更などに使われているプラグインのimagickがエックスサーバーではパスが通っていないので、php.iniを編集してやる必要があります。

php.iniは、サーバーパネルの下あたりのここにあります。

 

 

そして「php.ini直接編集」タブをクリックして直に追記します。

 

 

extension = imagick.so
 

実際に書くとこんな感じです。

[mbstring]の上あたりに書くといい感じです。

 

 

これをしないとあとでimagickがありません!一部機能が・・・というアラートがなくなると思います。

 

0

NetCommons3を再インストール

以前から気になっていたんですが、このサイトを立ち上げたときにNetCommons3のインストールを失敗していたらしく、ソースコードがくちゃくちゃになっていたんですね。

CSSも即時反映されないし、おかしいなと思っていたある日、他のNetCommons3で構築されたサイトのソースと見比べてみたら、全然違うんですよ。

ソースコード綺麗なんですよ。

「ナニコレ!?アタシのソースコードヤバすぎ?!」

って思っちゃいましてね。

遂に再インストールを決行したんです。

 

そしたら、なんか新しいバージョン出てて、「ついでだし、こっちの新しい方インストールしーちゃお!」って気軽に考えてやってたら、

全っ然!インストールできないんですよ。

なにやらCAKE_CORE_INCLUDE_PATHの場所が違うだの、bootstrap.phpが無いだの言うんですよ。

んで、あるべき場所を見たらあるんですよ

「あるよ!!」

って言ってもサーバーは答えてくれず。

そっからこれを解決するための色んな調査が始まる訳ですよ。

 

二週間かかったね。

 

わかんなかったよ。

 

結局解んなくてもう一度公式サイトのインストール方法読んでたら、サーバーの必要要件に

「mod_rewright」って書いてあるのが目に止まりまして。

 

 

急いでルートディレクトリを確認したんですよ。

 

 

なかったょ

 

「.htaccess」

 

サーバー上でSSHから解凍してさ、何も考えずMVコマンドで移動させていたから隠しファイルが抜けてたよ!

 

ローカルのWindows上で解凍したら入ってて気づいたよ!

 

アップロードした。

インストールできた。

 

なんだったんだよこの二週間。

 

めっちゃ調べたよ!

CakePHPまで勉強しかけたよ!(しなかったよ!)

サーバー上にたぶん色んなゴミ出来たよ!(怖くて消せないよ!)

色んなパスおかしくなってる気がするよ!

 

こんな初歩的な見落しをしていたとは...。

 

 

ともあれ。

 

やっと復活しました。

 

なのでこれから頑張って書いていきまーす。

0