質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSRF

クロスサイトリクエストフォージェリ (Cross site request forgeries、CSRF)は、 外部Webページから、HTTPリクエストによって、 Webサイトの機能の一部が実行されてしまうWWWにおける攻撃手法です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1002閲覧

CSRF対策はどんなサイトでも絶対必要なのか

teratail_begin

総合スコア72

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSRF

クロスサイトリクエストフォージェリ (Cross site request forgeries、CSRF)は、 外部Webページから、HTTPリクエストによって、 Webサイトの機能の一部が実行されてしまうWWWにおける攻撃手法です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

2グッド

1クリップ

投稿2022/02/07 19:02

ログインが伴うサイトやDBへの書き込みなどが発生するサイトなどではCSRF対策は必須だと思います。SNSはその代表例ですよね。

しかし、そのような重要なものがない簡単なサイトでもCSRF対策は絶対必要でしょうか?

たとえば(たとえばですよ!)、formで身長と体重を入力してPOSTしたらサーバサイドでBMIが計算されてブラウザにBMIが結果表示されるだけのシンプルなサイトがあったとします。
ここではログイン機能などはないし、計算したBMIなどをDB等に記録することもないサイトです。

こうした単純なサイトでもCSRF対策は必要ですか?
私は必要ないと思っているのですが、もし必要だとしたら、なぜでしょうか?
どういう理由なのか具体的にお願いします。

sakonji, yohhoy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/02/07 20:03

この内容だと「自分が勝手に思ってる」だけで「なぜそういう考えに至ったか」という前提や背景がないように見受けられます。 この手のセキュリティ対策は調べれば幾らでも出てくるわけですし、今回質問に至った出典を明示されたほうが良いかと。 要件次第でもあるので、結局は作る人・運営する人が決めるしかないと思います。 やりすぎると使いにくいし、対応が甘いと利用者に迷惑がかかるという「バランス」が難しいものなので。
teratail_begin

2022/02/08 08:25

>要件次第でもある うーん、そういう話ではないっすね。 要件次第でXSS対策やCSRF対策をあえてしなくて良い…なんてありえます? 基本的には利用者に迷惑がかかる「セキュリティ対策」なんてないと思いますが。
m.ts10806

2022/02/08 08:59

>なんてありえます? では、なぜ質問したのでしょう。 あまり例えだけで進められても本質的なアドバイスは得られないと思います。 そして、確実さを目指すなら変に例えで赤の他人に投げるより専門家にコンサルとして入ってもらったほうが良いです。 あまりに全てやり過ぎると使いづらくなるのは事実としてあります。セキュリティ対策は幅広く細かいですから。すべて把握した上で「どこまでやるか」を決めるのが要件です。 1つだけピックアップしても要件定義の甘さを突っ込まれるだけだと思います。
teratail_begin

2022/02/08 12:28

m.tsさんはあらゆる人の質問に対して毎回毎回つまらない揚げ足取りのツッコミばかりで何の生産性もないので、もう絡まないでいただきたいです。たとえば徳丸先生を見習ってください。あなたとは次元が違うレベルの雲の上の人なのに、ド素人のアホみたいな質問にも嫌な顔ひとつせず、なんとか答えようとしてくれる神のような人です。 全く建設的ではない嫌味なお説教ばかりするm.tsさん(他、似たような人が数名)は各所で嫌われています。少しは自覚してください。
m.ts10806

2022/02/08 22:30 編集

ド素人のアホと思ってないための確認なのですが、それを揚げ足取りと。 質問者回答者含め私は誰とも敵対しようとも勝負しようとも思ってません。既についた回答が間違いとも思ってない。いちおうそれなりに長くWebエンジニアとしてやってきた経験からのアドバイスです。 それだけセキュリティ対策って簡単ではないし本当にちゃんとやりたいならちょっと質問してなんとかなる範疇ではないものです。 「例えば」で押し通そうとされてるようにも思いますが、それだと調べて出てくる範囲のアドバイスしかしようがないと思います。 なので、「必要ないと思うならそれでいいのでは」と感じる人も少なくないと思います。 その徳丸さんも「ご覧になった解説がイケてないのでは」と仰っています。その解説がイケてないものなら、あなたのような人が引っかからないように著者に指摘しないといけません。 そのため最初に「前提や背景、出典の明示を」と書いています。より確実な要件や情報が必要なのです。 そこまで考えての指摘であるということが伝われば良いのですが、既に私を無駄に敵視されてるようですし、それこそ建設的な話にはならなそうですね。議題としては良いものなのに非常に残念。 勘違いされてるかもしれないのでお伝えしておきますが、状況次第でかなり良い議題やついたアドバイスから良い情報も得られそうなので私はこの質問に低評価していません。が、3つも低評価ついてるということは、やはり前提や背景が不足している(具体的な問題の記載がない)ところによるのではないでしょうか。
teratail_begin

2022/02/09 04:56

>質問者回答者含め私は誰とも敵対しようとも勝負しようとも思ってません 少しは自覚してください。 あなたも、そして「低評価を押しまくるのが生きがい」の数人の人たちも。 そんなことやってるからteratailは初心者に嫌われて過疎化するのです。こんなところでまで怒られたりネチネチ詰められたりしたくないんですよ、みんな。Q&Aサイトがド素人をイビって何の意味がありますか? あなたが毎回善意から一生懸命やってるのはよく分かります。しかしそれを受け取る人の大半は快く思っていません。「自覚してほしい」と書いたのはそういうことです。善意だったらなんでも許されるわけじゃありません。「善意の押し付けでみんながウンザリすること」があるって、わかるでしょう。 一部の回答者によるネチっこい善意の押しつけと厳しすぎる「教育姿勢」によって、空気がギスギスしてるんですよ、teratailは。
m.ts10806

2022/02/09 07:20

本当に建設的な話にしたいのでしたら「回答者への個人的批判」は単なる人格攻撃に成り下がるので一度置かれたほうが良いかと。
teratail_begin

2022/02/09 08:09

あなたもいつも質問者への個人的批判を含むような攻撃的な「質問への追記・修正依頼」が多いですよ。 何度も言いますが、少しは自覚してください。
m.ts10806

2022/02/09 08:21 編集

そうですか、あくまでそこに執着されるなら仕方ないですね。問題の明確化も解決する気もないと理解しました。では。
teratail_begin

2022/02/09 08:22

どうですか、「お前のやり方はけしからん!」と苦言を呈された気持ちは? 気分が悪いでしょう? あなたがいつもteratailでやってることですよ。 自覚してください。
guest

回答2

0

ベストアンサー

こうした単純なサイトでもCSRF対策は必要ですか?

不要です。そもそも更新系の処理がなければCSRF対策は不要です。ご覧になった解説がイケてないのではないでしょうか。
ちなみに拙著で恐縮ですが、CSRFの「見出し」は以下のようになっています。

「重要な処理」の際に混入する脆弱性

体系的に学ぶ 安全なWebアプリケーションの作り方 第2版

投稿2022/02/07 22:20

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teratail_begin

2022/02/08 07:51

徳丸先生ありがとうございます! >更新系の処理がなければCSRF対策は不要 更新系処理がなければ実害はないでしょうけれども、イタズラで「脅かし」はできますよね? あー、でもそれはXSSの話ですかね??? >体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 こちらの本は持ってます! 実は紙の本もKindle版も両方買いました! …が、購入当初にパラパラっとめくっただけで満足し、あとはインテリアとなっていますw
ockeghem

2022/02/09 09:16

> 更新系処理がなければ実害はないでしょうけれども、イタズラで「脅かし」はできますよね? こちらですが、「脅かし」のイメージがわきませんね。それはCSRFではないと思いますが、別の攻撃手法があるのであれば、それはそれで対策が必要かもしれません。
guest

0

そのような重要なものがない簡単なサイトでもCSRF対策は絶対必要でしょうか?

単にHTMLを表示するだけで、サーバサイドもHTMLをただ返すだけの仕組みしかない、というようなサイトでは、CSRF対策は不要かつ不可能ということもありえます。

投稿2022/02/07 21:48

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teratail_begin

2022/02/08 07:46

え??? FORMからPOSTされた値を元にサーバサイドで処理してHTMLを返すのだから、CSRFは可能なのでは? つまり、意図してないのにある罠リンクを踏んだら突然「あなたのBMIは20です!」とか表示されるやつ。
maisumakun

2022/02/08 07:54 編集

> CSRFは可能なのでは? ログインなどセッション情報が絡まない場合、CSRFとは言いません。
teratail_begin

2022/02/08 07:54

そっか、定義的にはその場合はXSSですかね?
maisumakun

2022/02/08 07:59 編集

> 意図してないのにある罠リンクを踏んだら突然「あなたのBMIは20です!」とか表示されるやつ。 ただのHTMLにリンクするのとほとんど変わりません(精神的ブラクラなど、技術的に言えば「ただのリンク」が迷惑な行為になることもありえます)。
maisumakun

2022/02/08 07:57

> 定義的にはその場合はXSSですかね? 違います。
teratail_begin

2022/02/08 08:23

え??? 罠リンクを踏んだことによってサーバに対して「意図せず勝手に値がPOST」されて結果が表示されるのですから、XSSなのでは?
maisumakun

2022/02/08 08:24

XSSは、Webページに「意図しないJavaScript」を埋め込んで不正な動作をさせる攻撃のことです。
teratail_begin

2022/02/08 12:23

じゃあ今回のように「CSRFっぽい動作だけどセッションは絡まないもの」は何と呼びますか?
maisumakun

2022/02/08 12:28

単なるHTTP POST、ですね。
teratail_begin

2022/02/08 19:01

ユーザーが意図しない形で勝手にPOSTされたり画面が遷移したりすれば、それは「単なる」ではないでしょう。 ちょっと認識に齟齬があるようですね。
maisumakun

2022/02/08 21:49

> それは「単なる」ではないでしょう。 上に書いたように、「単なるリンク」ですら、ユーザーの意図しない結果をもたらすことがありえます。 「異なるドメインに対してPOST」することそのものは、ブラウザ環境によって制約を受けないので、技術的には「単なるPOST」そのものです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問