投稿
3月, 2018の投稿を表示しています
Laravelで自動的に暗号化してDB保存、復号化して取得する方法
- リンクを取得
- ×
- メール
- 他のアプリ
以前、 Larave lで トレイト を使ってuser_idの 自動 登録や常に検索条件に含ませる方法を紹介しました。 今回はそれの応用で、 DB 登録時に常に 暗号化 して、表示する際は必ず 復号化 する方法をご紹介します。 特に 個人情報 や パスワード などの重要な データ を取り扱う場合には非常に有効で、 セキュリティ の向上にも繋がりますので、覚えていて損はないかと思います。 自動で暗号化&復号化 今回の目的は、対象の フィールド を指定するだけで、制作者が特に意識せずに 自動 で 暗号化 ・ 復号化 できるようにしたいと思います。 使用するのは、新規で作成する トレイト と既存の モデル のみです。 トレイトを作成する DB 登録前に モデル をセットする際に 暗号化 し、取得する際に復号化するため、 getAttribute と setAttribute を上書きします。 app¥Encryptable.php <?php namespace App; use Crypt; trait Encryptable { public function getAttribute($key) { $value = parent::getAttribute($key); if (in_array($key, $this->encryptable)) { $value = Crypt::decrypt($value); return $value; } return $value; } public function setAttribute($key, $value) { if (in_array($key, $this->encryptable)) { $value = Crypt::encrypt($value); } return parent::setAttribute($key, $value); } } モデル内でフィールドを指定 使い方はとっても簡単です。 使用する...
CentOS 7でパスワードを間違えてログインできなくなった時の対処法
- リンクを取得
- ×
- メール
- 他のアプリ
先日、 自宅サーバー に SSH で ログイン しようと間違った パスワード を入力し、数回 ログイン に 失敗 してしまいました。 その後、 ユーザー も パスワード も合っているのに ログイン できなくなりました。 設定した覚えはないのですが、どうやら一定回数ログインに失敗したことで アカウント が ロック されたようです。 今回は ロック 解除 と ログイン 失敗 回数 の リセット 方法を紹介します。 自宅サーバー を構築する際にいつもお世話になってます「 Server World 」さんから引用します。 CentOS 7 : ログインの失敗回数を制限する : Server World 設定を確認する ローカルログインの場合 vi /etc/pam.d/system-auth sshdの場合 vi /etc/pam.d/password-auth deny=N で N回失敗でロック (root は適用外) root も適用する場合は「even_deny_root」を付加 unlock_time=N で N秒間過ぎるとロック解除 (自動ロック解除しない場合は unlock_time 指定しない) even_deny_root で root も適用した場合は root_unlock_time=N で自動ロック解除期間を指定可 手動でロックを解除する そもそもSSHでログインできない さぁ、解除するにも SSH は root ログイン 禁止 にしているので入れない。困った。 自宅サーバー にモニターやキーボードを繋いだりするのも面倒だ。 そうだ! 仮想化 してるから「 VMware vSphere Client 」を使おう! ってなわけで、無事に root で ログイン 。 失敗回数を確認する ロック を 解除 するには、「 pam_tally2 」 コマンド を使います。 その前に、 ログイン できなくなった ユーザー の 失敗 回数 を確認してみましょう。 pam_tally2 -u [ユーザ名] すると、このように表示されると思います。 Login Failures Latest failure From admin 27...
Laravel 5.5(Cloud9)の開発環境自動構築スクリプトに3つの機能を追加!
- リンクを取得
- ×
- メール
- 他のアプリ
以前、 Cloud9 に PHP7 を入れて Laravel 5.5 の 開発環境 を 自動構築 する シェルスクリプト を作成しましたが、今回はそれを大幅アップグレードしました! 大まかに以下の 3つの機能 を加えてます。 MySQL 5.5から5.7へアップグレード Laravel認証機能の構築 ドキュメントルートの設定 MySQL 5.7.xへアップグレード Cloud9 に最初から入っている MySQL の バージョン は 5.5 です。 MySQL 5.5 のままでいいじゃん。と思うかもしれませんが、 Laravel 5.5 ではこれがちょっとした曲者。 Laravel 5.4 以降は標準 charase が utf8mb4 に変わったらしく、 php artisan migrate をすると エラー になるのです。 2 shares もちろん対処法はあるので、後で手動で書くか、後に紹介する ドキュメントルート の設定のように当スクリプトで差し込もうかと思いましたが、どうせなら新しい MySQL を入れてしまいます。 リポジトリを追加 MySQL :: Download MySQL APT Repository ここから最新のを探してきて、スクリプト内の mysql_apt_deb_file にコピペします。 Cloud9 は Ubuntu で動いているのでこんな感じで書きます。 ... # Copy filename from mysql_apt_deb_file=mysql-apt-config_0.8.9-1_all.deb # Add MySQL 5.7.x Repository curl -LO echo mysql-apt-config mysql-apt-config/select-product select Apply | sudo debconf-set-selections echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo deb...