開発実装 #25
Lunatic1998 さんが約1年前に更新
### 概要
- redis.rbにて記述している以下のコードについて、修正が必要である。
- 以下のコードは、'psych'のバージョンが3以下の記法であり、'psych'のバージョンが4以上になると対応不可となる。
- 'psych'のバージョンが3に指定したが、やはりバージョンに依存しない記法でコードを書くことが望ましい。
### 修正前
```
if yaml && yaml.exist?
@config = YAML.load(ERB.new(yaml.read).result)[Rails.env] || {}
else
```
### 変更点
- [非常にわかりやすいスライド](https://www.docswell.com/s/pink_bangbi/K67RV5-2022-01-06-201330#p1)
- `Psych.load`は、`Psych.safeload`に置き換えられている。
- 公式:https://docs.ruby-lang.org/en/3.0/Psych.html
- Psychのバージョンが3と4に対応できるように、以下の記載が可能である。
- Gemfile上でPsychを4.0と指定しているため、Psych=3.0の場合の記載は不要かもしれない。
- https://qiita.com/ledsun/items/ee6d957c86e6191fa80b
- YAMLファイル内で、`&default`というエイリアスを使用しているため、エイリアスの使用を明示化する必要がある。
```
safe_load_fileメソッドは、YAMLファイルを安全に読み込むためのメソッドです。
このメソッドは、セキュリティ上のリスクを最小限に抑えるために設計されています。
YAMLファイル内のデータが信頼できない場合や、悪意のあるコードが埋め込まれている可能性がある場合に使用されます
。このメソッドは、デフォルトで一部のオブジェクトやクラスの読み込みを無効化し、安全性を保つための制限がかかります。
```