#はじめに
techpitに「railsでlinebotを作ってみよー!」ってやつがあったので初めて見たらセキュリティについての項目があった。最近freeeとかlineとか情報漏洩してセキュリティに対する知見が重要になっている気がするのでアウトプットのために記事を書く。
#DNSリバインディング攻撃
DNSリバイディング攻撃はサイバー攻撃の一種であり、ドメイン名に対応するIPアドレスを短時間で変更し、罠サイトに仕掛けたJavascriptから攻撃対象サイトに対して悪さをするもの
Rails6ではDNSリバインディング攻撃の対策のため、localhostなどの指定されたホスト名以外でローカル環境にアクセスできないようになっている。アクセスを許可するためにはホスト名を指定して許可する設定が必要
今回linebotを作るにあたってngrokというものを使用しており、起動するたびにURLが変わってしまい、その都度ホスト名を許可するのは手間がかかるため、今回は全てのホスト名でアクセスできるように設定をした。(対策を無効化した)
config.host.clear
#CSRF(リクエスト強要)対策
リクエスト強要とは、別のサイトに用意したコンテンツ上の罠のリンクを踏ませること等をきっかけとして、引退ネットショッピングの最終決済などの重要な処理を呼び出すようにユーザーを誘導する攻撃
rails6ではリクエスト強要に対する対策が標準で設定されている。
今回はlinebotを作るにあたってCSRF攻撃のリスクはほぼないためこれを無効化
protect_from_forgery except: [:アクション名]
#終わりに
セキュリティむずい