From 8727b6fe4d74ac0544fcc0ca50f452591636f01d Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 9 Jan 2022 15:13:14 +0900 Subject: Web/Security/Securing_your_site 以下を変換準備 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ja/web/security/securing_your_site/index.html | 54 ---------------- files/ja/web/security/securing_your_site/index.md | 54 ++++++++++++++++ .../turning_off_form_autocompletion/index.html | 74 ---------------------- .../turning_off_form_autocompletion/index.md | 74 ++++++++++++++++++++++ 4 files changed, 128 insertions(+), 128 deletions(-) delete mode 100644 files/ja/web/security/securing_your_site/index.html create mode 100644 files/ja/web/security/securing_your_site/index.md delete mode 100644 files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.html create mode 100644 files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.md (limited to 'files/ja/web') diff --git a/files/ja/web/security/securing_your_site/index.html b/files/ja/web/security/securing_your_site/index.html deleted file mode 100644 index 915c555d8c..0000000000 --- a/files/ja/web/security/securing_your_site/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: サイトの安全化 -slug: Web/Security/Securing_your_site -tags: - - HTTP - - Security - - Web Development - - Website Security -translation_of: Web/Security/Securing_your_site ---- -
{{ draft() }}
- -

サイトをより安全にする方法はいくつもあります。この記事はその方法を紹介するとともに他のより有益な記事へのリンクを掲載しています。

- -
メモ: この記事は作成途中であり、以下の事項に従うことによりあなたのサイトが完全にセキュアになることを保証するものではありません。
- -

ユーザー情報のセキュリティ

- -
-
フォームオートコンプリートを無効にするには
-
Geckoではフォームのオートコンプリートがサポートされています。つまり、ユーザがフォームに入力した値を記憶し、次回訪問時には自動的にその値が入力されることになります。ある特定のデータに関しては、この機能を無効にしたほうが適切かもしれません。
-
プライバシーと :visited セレクター
-
この記事では悪質なサイトがユーザーの閲覧履歴を取得できないようにするために getComputedStyle() メソッドに加えられた変更について議論しています。
-
安全なアルゴリズムを使用したパスワードのハッシュ (OWASP)
-
プレーンテキストでパスワードを格納すると、攻撃者がサイトのユーザーの正確なパスワードを知り、漏洩させることにつながり、ユーザーを危険にさらすことになります。古く安全ではないハッシュアルゴリズム (md5 など) を使用すると、同じ問題が浮上します。メッセージダイジェストアルゴリズム (md5 や sha) ではなくパスワード専用のハッシュアルゴリズム (Argon2, PBKDF2, scrypt, bcrypt など) を使用するようにしてください。この記事はパスワードを格納するときに使用することができるベストプラクティスのショーケースです。
-
- -

コンテンツセキュリティ

- -
-
サーバーの MIME タイプを正しく設定する
-
MIME タイプを正しく設定しないと、幾つかの潜在的なセキュリティ上の問題が発生します。この記事ではそのうちのいくつかを紹介し、サーバーで MIME タイプを正しく設定する方法を示します。
-
HTTP Strict Transport Security
-
Strict-Transport-Security: HTTP ヘッダーを使うと、そのサイトが HTTPS でのみアクセスされるべきであるということを示すことができます。
-
HTTP アクセス制御
-
Cross-Origin Resource Sharing 標準はどのコンテンツが他のドメインから読み込まれるかを示す方法を提供します。この仕組みによりあなたのサイトが意図せず使われることを防いだり、明示的に使用を許可できます。
-
Content Security Policy
-
{{Glossary("Cross-site_scripting", "クロスサイトスクリプティング (XSS)")}} やデータインジェクション攻撃を含む、特定の攻撃を検知したり軽減したりすることができる追加のセキュリティレイヤーです。これらの攻撃は、データの窃盗からサイトの改ざんやマルウェアの配布まで、あらゆることに利用されます。コードは被害者によって実行され、攻撃者がアクセス制御をバイパスしたり、成りすまししたりすることができるようになります。 Open Web Application Security Project によれば、 XSS は2017年によくあるウェブアプリの脆弱性の第7位でした。
-
X-Frame-Options レスポンスヘッダー
-
-

X-Frame-Options: HTTP レスポンスヘッダーはページを {{ HTMLElement("frame") }} 内に描画して良いかどうかを示すために使われます。これを使うことにより、自身のサイトが他のサイトに埋め込まれていないことを保証できるため、クリックジャッキングを防ぐことができます。

-
-
ウェブサイトの構成によるアクセス制御
-
これはサイトを安全にするのに最良の方法です。 IP アドレスのブラックリスト、ウェブサイトの特定の領域へのアクセス制御、様々なファイルの保護、画像のホットリンクの防止、その他多数です。例えば、 Apache HTTP Server でホスティングされているウェブサイトでは .htaccess ファイルが使用されます。
-
- -

関連情報

- - - -
{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}
diff --git a/files/ja/web/security/securing_your_site/index.md b/files/ja/web/security/securing_your_site/index.md new file mode 100644 index 0000000000..915c555d8c --- /dev/null +++ b/files/ja/web/security/securing_your_site/index.md @@ -0,0 +1,54 @@ +--- +title: サイトの安全化 +slug: Web/Security/Securing_your_site +tags: + - HTTP + - Security + - Web Development + - Website Security +translation_of: Web/Security/Securing_your_site +--- +
{{ draft() }}
+ +

サイトをより安全にする方法はいくつもあります。この記事はその方法を紹介するとともに他のより有益な記事へのリンクを掲載しています。

+ +
メモ: この記事は作成途中であり、以下の事項に従うことによりあなたのサイトが完全にセキュアになることを保証するものではありません。
+ +

ユーザー情報のセキュリティ

+ +
+
フォームオートコンプリートを無効にするには
+
Geckoではフォームのオートコンプリートがサポートされています。つまり、ユーザがフォームに入力した値を記憶し、次回訪問時には自動的にその値が入力されることになります。ある特定のデータに関しては、この機能を無効にしたほうが適切かもしれません。
+
プライバシーと :visited セレクター
+
この記事では悪質なサイトがユーザーの閲覧履歴を取得できないようにするために getComputedStyle() メソッドに加えられた変更について議論しています。
+
安全なアルゴリズムを使用したパスワードのハッシュ (OWASP)
+
プレーンテキストでパスワードを格納すると、攻撃者がサイトのユーザーの正確なパスワードを知り、漏洩させることにつながり、ユーザーを危険にさらすことになります。古く安全ではないハッシュアルゴリズム (md5 など) を使用すると、同じ問題が浮上します。メッセージダイジェストアルゴリズム (md5 や sha) ではなくパスワード専用のハッシュアルゴリズム (Argon2, PBKDF2, scrypt, bcrypt など) を使用するようにしてください。この記事はパスワードを格納するときに使用することができるベストプラクティスのショーケースです。
+
+ +

コンテンツセキュリティ

+ +
+
サーバーの MIME タイプを正しく設定する
+
MIME タイプを正しく設定しないと、幾つかの潜在的なセキュリティ上の問題が発生します。この記事ではそのうちのいくつかを紹介し、サーバーで MIME タイプを正しく設定する方法を示します。
+
HTTP Strict Transport Security
+
Strict-Transport-Security: HTTP ヘッダーを使うと、そのサイトが HTTPS でのみアクセスされるべきであるということを示すことができます。
+
HTTP アクセス制御
+
Cross-Origin Resource Sharing 標準はどのコンテンツが他のドメインから読み込まれるかを示す方法を提供します。この仕組みによりあなたのサイトが意図せず使われることを防いだり、明示的に使用を許可できます。
+
Content Security Policy
+
{{Glossary("Cross-site_scripting", "クロスサイトスクリプティング (XSS)")}} やデータインジェクション攻撃を含む、特定の攻撃を検知したり軽減したりすることができる追加のセキュリティレイヤーです。これらの攻撃は、データの窃盗からサイトの改ざんやマルウェアの配布まで、あらゆることに利用されます。コードは被害者によって実行され、攻撃者がアクセス制御をバイパスしたり、成りすまししたりすることができるようになります。 Open Web Application Security Project によれば、 XSS は2017年によくあるウェブアプリの脆弱性の第7位でした。
+
X-Frame-Options レスポンスヘッダー
+
+

X-Frame-Options: HTTP レスポンスヘッダーはページを {{ HTMLElement("frame") }} 内に描画して良いかどうかを示すために使われます。これを使うことにより、自身のサイトが他のサイトに埋め込まれていないことを保証できるため、クリックジャッキングを防ぐことができます。

+
+
ウェブサイトの構成によるアクセス制御
+
これはサイトを安全にするのに最良の方法です。 IP アドレスのブラックリスト、ウェブサイトの特定の領域へのアクセス制御、様々なファイルの保護、画像のホットリンクの防止、その他多数です。例えば、 Apache HTTP Server でホスティングされているウェブサイトでは .htaccess ファイルが使用されます。
+
+ +

関連情報

+ + + +
{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}
diff --git a/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.html b/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.html deleted file mode 100644 index 642f8b3317..0000000000 --- a/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: フォームの自動補完を無効にするには -slug: Web/Security/Securing_your_site/Turning_off_form_autocompletion -tags: - - Forms - - Guide - - Security - - Web Development - - ウェブ開発 - - セキュリティ - - フォーム -translation_of: Web/Security/Securing_your_site/Turning_off_form_autocompletion ---- -

この記事では、フォーム入力欄の自動補完をウェブサイト側から無効にする方法を説明します。

- -

既定では、ウェブサイト上の {{HTMLElement("input")}} 欄を通じてユーザーが送信した情報はブラウザーによって記憶されます。これよってブラウザーは、自動補完 (入力を受けた入力欄の補完候補をユーザーに提示する機能) や、オートフィル (読み込まれた入力欄をあらかじめブラウザーが補完する機能) を実現しています。

- -

これらの機能は通常は既定で有効ですが、ユーザーのプライバシーにかかわる可能性があるため、ブラウザーは無効にすることができます。しかしながら、フォームで送信される情報の中には将来利用する価値のないもの (ワンタイムパスワードなど) や、機微な情報 (公的な識別番号やクレジットカード番号など) があります。ブラウザーの自動補完機能が有効であっても、ウェブサイトの作者としては、そのような入力欄の値をブラウザーに記憶させないほうが適切かもしれません。

- -

自動補完を無効にすると、 WCAG 2.1 の 1.3.5: Identify Input Purpose の規則を破ることになることを知っておくことが重要です。 WCAG に従うウェブサイトを制作するのであれば、自動的に記入する自動補完を使用するべきです。

- -

自動補完の無効化

- -

フォームにおける自動補完を無効にするには、 autocomplete 属性に "off" を指定することで実現できます。

- -
autocomplete="off"
- -

上記の設定はフォーム全体に適用することも、特定の input 要素に指定することも可能です。

- -
<form method="post" action="/form" autocomplete="off">
-[…]
-</form>
- -
<form method="post" action="/form">
-  […]
-  <div>
-    <label for="cc">クレジットカード番号:</label>
-    <input type="text" id="cc" name="cc" autocomplete="off">
-  </div>
-</form>
- -

入力欄に autocomplete="off" を指定すると、以下の 2 つの効果が生じます。

- - - -

autocomplete を off に設定してもブラウザーがサジェスト値を表示し続ける場合は、 input 要素の name 属性を変更する必要があります。

- -

autocomplete 属性とログイン欄

- -

現代的なブラウザーでは、パスワードを一括管理する機能が実装されています。ユーザーがウェブサイトでユーザー名とパスワードを入力した際、ブラウザーはその値を記憶するかユーザーに尋ねます。ユーザーがそのウェブサイトを再び訪れた際には、ログイン欄がブラウザーに保存された値で自動入力されます。

- -

加えて、ユーザーがマスターパスワードを設定すると、ログイン情報をマスターパスワードで暗号化した状態でブラウザーに保存することができます。

- -

マスターパスワードが用いられない場合でも、ブラウザーのパスワード管理機能は純粋にセキュリティの向上につながります。パスワードをブラウザーが保存すればユーザーは覚えなくてもよいため、覚えなければならない場合よりも強固なパスワードをユーザーが設定できるようになります。

- -

このような理由から、現代的なブラウザーの多くはログイン欄における autocomplete="off" に対応していません。

- - - -

この挙動は Firefox 38 以降、 Google Chrome 34 以降、 Internet Explorer 11 以降で共通です。

- -

autocomplete="new-password" による自動入力を抑止

- -

他人のパスワードを指定するようなユーザー管理ページを定義していて、パスワード欄の自動入力を抑止したい場合は、 autocomplete="new-password" を使用することができます。

- -

これはヒントであり、ブラウザーは守る必要はありません。しかし、最近のブラウザーは <input> 要素に autocomplete="new-password" を設定すると自動入力を停止します。例えば、 Firefox バージョン 67 ({{bug(1119063)}} を参照) はこの場合に自動入力を停止していましたが、 Firefox 70 ({{bug(1565407)}} を参照) は安全に生成されたパスワードを提案することができるものの、保存されたパスワードを自動入力しません。詳しくは autocomplete 互換性テーブルを参照してください。

- -

{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}

diff --git a/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.md b/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.md new file mode 100644 index 0000000000..642f8b3317 --- /dev/null +++ b/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.md @@ -0,0 +1,74 @@ +--- +title: フォームの自動補完を無効にするには +slug: Web/Security/Securing_your_site/Turning_off_form_autocompletion +tags: + - Forms + - Guide + - Security + - Web Development + - ウェブ開発 + - セキュリティ + - フォーム +translation_of: Web/Security/Securing_your_site/Turning_off_form_autocompletion +--- +

この記事では、フォーム入力欄の自動補完をウェブサイト側から無効にする方法を説明します。

+ +

既定では、ウェブサイト上の {{HTMLElement("input")}} 欄を通じてユーザーが送信した情報はブラウザーによって記憶されます。これよってブラウザーは、自動補完 (入力を受けた入力欄の補完候補をユーザーに提示する機能) や、オートフィル (読み込まれた入力欄をあらかじめブラウザーが補完する機能) を実現しています。

+ +

これらの機能は通常は既定で有効ですが、ユーザーのプライバシーにかかわる可能性があるため、ブラウザーは無効にすることができます。しかしながら、フォームで送信される情報の中には将来利用する価値のないもの (ワンタイムパスワードなど) や、機微な情報 (公的な識別番号やクレジットカード番号など) があります。ブラウザーの自動補完機能が有効であっても、ウェブサイトの作者としては、そのような入力欄の値をブラウザーに記憶させないほうが適切かもしれません。

+ +

自動補完を無効にすると、 WCAG 2.1 の 1.3.5: Identify Input Purpose の規則を破ることになることを知っておくことが重要です。 WCAG に従うウェブサイトを制作するのであれば、自動的に記入する自動補完を使用するべきです。

+ +

自動補完の無効化

+ +

フォームにおける自動補完を無効にするには、 autocomplete 属性に "off" を指定することで実現できます。

+ +
autocomplete="off"
+ +

上記の設定はフォーム全体に適用することも、特定の input 要素に指定することも可能です。

+ +
<form method="post" action="/form" autocomplete="off">
+[…]
+</form>
+ +
<form method="post" action="/form">
+  […]
+  <div>
+    <label for="cc">クレジットカード番号:</label>
+    <input type="text" id="cc" name="cc" autocomplete="off">
+  </div>
+</form>
+ +

入力欄に autocomplete="off" を指定すると、以下の 2 つの効果が生じます。

+ + + +

autocomplete を off に設定してもブラウザーがサジェスト値を表示し続ける場合は、 input 要素の name 属性を変更する必要があります。

+ +

autocomplete 属性とログイン欄

+ +

現代的なブラウザーでは、パスワードを一括管理する機能が実装されています。ユーザーがウェブサイトでユーザー名とパスワードを入力した際、ブラウザーはその値を記憶するかユーザーに尋ねます。ユーザーがそのウェブサイトを再び訪れた際には、ログイン欄がブラウザーに保存された値で自動入力されます。

+ +

加えて、ユーザーがマスターパスワードを設定すると、ログイン情報をマスターパスワードで暗号化した状態でブラウザーに保存することができます。

+ +

マスターパスワードが用いられない場合でも、ブラウザーのパスワード管理機能は純粋にセキュリティの向上につながります。パスワードをブラウザーが保存すればユーザーは覚えなくてもよいため、覚えなければならない場合よりも強固なパスワードをユーザーが設定できるようになります。

+ +

このような理由から、現代的なブラウザーの多くはログイン欄における autocomplete="off" に対応していません。

+ + + +

この挙動は Firefox 38 以降、 Google Chrome 34 以降、 Internet Explorer 11 以降で共通です。

+ +

autocomplete="new-password" による自動入力を抑止

+ +

他人のパスワードを指定するようなユーザー管理ページを定義していて、パスワード欄の自動入力を抑止したい場合は、 autocomplete="new-password" を使用することができます。

+ +

これはヒントであり、ブラウザーは守る必要はありません。しかし、最近のブラウザーは <input> 要素に autocomplete="new-password" を設定すると自動入力を停止します。例えば、 Firefox バージョン 67 ({{bug(1119063)}} を参照) はこの場合に自動入力を停止していましたが、 Firefox 70 ({{bug(1565407)}} を参照) は安全に生成されたパスワードを提案することができるものの、保存されたパスワードを自動入力しません。詳しくは autocomplete 互換性テーブルを参照してください。

+ +

{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}

-- cgit v1.2.3-54-g00ecf