Skip to content

Commit ddc7da5

Browse files
SSakutarosmikitky
andauthored
レビューを踏まえて修正
Co-authored-by: Soichiro Miki <smiki-tky@umin.ac.jp>
1 parent e5e5daa commit ddc7da5

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

src/content/reference/react/experimental_taintObjectReference.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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
8585
import {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

Comments
 (0)