@@ -55,21 +55,21 @@ experimental_taintObjectReference(
5555
5656#### 引数 {/* parameters* /}
5757
58- * ` message ` : オブジェクトが Client Component に渡されてしまった場合に表示したいメッセージです 。このメッセージは、そのオブジェクトが Client Component に渡されたときにスローされるエラーの一部として表示されます 。
58+ * ` message ` : オブジェクトがクライアントコンポーネントに渡されようとした場合に表示したいメッセージ 。このメッセージは、そのオブジェクトがクライアントコンポーネントに渡されようとした際にスローされるエラーの一部として表示されます 。
5959
60- * ` object ` : taint するオブジェクトです。関数やクラスインスタンスを ` taintObjectReference ` に ` object ` として渡すことができます。関数やクラスは Client Component に渡されることがすでにブロックされていますが 、React のデフォルトのエラーメッセージは ` message ` で定義したものに置き換えられます。Typed Array の特定のインスタンスを ` taintObjectReference ` に ` object ` として渡した場合、その Typed Array の他のコピーは taint されません。
60+ * ` object ` : taint(汚染)するオブジェクト。関数やクラスインスタンスも ` taintObjectReference ` に ` object ` として渡すことができます。関数やクラスはクライアントコンポーネントに渡せないよう元々ブロックされていますが 、React のデフォルトのエラーメッセージを ` message ` で定義したものに置き換えられます。Typed Array の特定のインスタンスを ` taintObjectReference ` に ` object ` として渡した場合、その Typed Array の他のコピーは taint されません。
6161
6262#### 返り値 {/* returns* /}
6363
6464` experimental_taintObjectReference ` は ` undefined ` を返します。
6565
6666#### 注意点 {/* caveats* /}
6767
68- - taint されたオブジェクトを再作成またはクローンすると、機密データを含む可能性がある新しい taint されていないオブジェクトが作成されます。例えば、taint された ` user ` オブジェクトがある場合、` const userInfo = {name: user.name, ssn: user.ssn} ` や ` {...user} ` は taint されていない新しいオブジェクトを作成します。` taintObjectReference ` が保護するのは、オブジェクトが変更されずに Client Component へそのまま渡されてしまうような単純なミスだけです 。
68+ - taint されたオブジェクトを再作成またはクローンすると、機密データを含む可能性がある新しい taint されていないオブジェクトが作成されます。例えば、taint された ` user ` オブジェクトがある場合、` const userInfo = {name: user.name, ssn: user.ssn} ` や ` {...user} ` は taint されていない新しいオブジェクトを作成します。` taintObjectReference ` が保護するのは、オブジェクトが変更されずにクライアントコンポーネントへそのまま渡されてしまうような単純なミスだけです 。
6969
7070<Pitfall >
7171
72- ** セキュリティを taint だけに頼らないでください** 。オブジェクトを taint しても、派生しうるあらゆる値の漏えいを防げるわけではありません 。例えば、taint されたオブジェクトをクローンすると、taint されていない新しいオブジェクトが作成されます。taint されたオブジェクトのデータを使うと (例えば ` {secret: taintedObj.secret} ` )、taint されていない新しい値やオブジェクトが作成されます 。taint は保護層の 1 つです。セキュアなアプリには、複数の保護層、適切に設計された API、分離パターンが必要です。
72+ ** セキュリティを taint だけに頼らないでください** 。オブジェクトを taint しても、そこから派生しうるあらゆる値の漏洩を防げるわけではありません 。例えば、taint されたオブジェクトをクローンすると、taint されていない新しいオブジェクトが作成されます。taint されたオブジェクトのデータを使って (例えば ` {secret: taintedObj.secret} ` )、taint されていない新しい値やオブジェクトが作成できます 。taint は保護層の 1 つです。セキュアなアプリには、複数の保護層、適切に設計された API、分離パターンが必要です。
7373
7474</Pitfall >
7575
@@ -79,7 +79,7 @@ experimental_taintObjectReference(
7979
8080### ユーザデータが意図せずクライアントに到達するのを防ぐ {/* prevent-user-data-from-unintentionally-reaching-the-client* /}
8181
82- Client Component は 、機密データを持つオブジェクトを決して受け取るべきではありません。理想的には、データ取得関数は現在のユーザに見せるべきではないデータを公開しないようにするべきです。しかしリファクタリング中にミスが起きることもあります。後続の処理でそのようなミスが起きた場合に備えて、データ API 内で user オブジェクトを "taint" できます。
82+ クライアントコンポーネントは 、機密データを持つオブジェクトを決して受け取るべきではありません。理想的には、データ取得関数は現在のユーザに見せるべきではないデータを公開しないようにするべきです。しかしリファクタリング中にミスが起きることもあります。後続の処理でそのようなミスが起きた場合に備えて、データ API 内で user オブジェクトを "taint"(汚染) できます。
8383
8484``` js
8585import {experimental_taintObjectReference } from ' react' ;
@@ -95,13 +95,13 @@ export async function getUser(id) {
9595}
9696```
9797
98- これにより、誰かがこのオブジェクトを Client Component に渡そうとすると 、指定したエラーメッセージを含むエラーがスローされます。
98+ これにより、誰かがこのオブジェクトをクライアントコンポーネントに渡そうとすると 、指定したエラーメッセージを含むエラーがスローされます。
9999
100100<DeepDive >
101101
102102#### データ取得での漏えいを防ぐ {/* protecting-against-leaks-in-data-fetching* /}
103103
104- 機密データにアクセスできる Server Components 環境を実行している場合 、オブジェクトをそのまま渡さないように注意する必要があります。
104+ 機密データにアクセスできるサーバコンポーネント環境を利用している場合 、オブジェクトをそのまま渡さないように注意する必要があります。
105105
106106``` js
107107// api.js
@@ -131,7 +131,7 @@ export async function InfoCard({ user }) {
131131}
132132```
133133
134- 理想的には、` getUser ` は現在のユーザに見せるべきではないデータを公開しないようにするべきです。後続の処理で ` user ` オブジェクトが Client Component に渡されるのを防ぐために 、user オブジェクトを "taint" できます。
134+ 理想的には、` getUser ` は現在のユーザに見せるべきではないデータを公開しないようにするべきです。後続の処理で ` user ` オブジェクトがクライアントコンポーネントに渡されるのを防ぐために 、user オブジェクトを "taint" できます。
135135
136136
137137``` js
@@ -149,6 +149,6 @@ export async function getUser(id) {
149149}
150150```
151151
152- これにより、誰かが ` user ` オブジェクトを Client Component に渡そうとすると 、指定したエラーメッセージを含むエラーがスローされます。
152+ これにより、誰かが ` user ` オブジェクトをクライアントコンポーネントに渡そうとすると 、指定したエラーメッセージを含むエラーがスローされます。
153153
154154</DeepDive >
0 commit comments