From cde292d5e982b48a6f1d4f09f506ade64075ad1d Mon Sep 17 00:00:00 2001
From: "translate-react-bot[bot]"
<251169733+translate-react-bot[bot]@users.noreply.github.com>
Date: Wed, 4 Feb 2026 15:13:58 +0000
Subject: [PATCH 1/2] =?UTF-8?q?docs:=20translate=20`experimental=5FtaintOb?=
=?UTF-8?q?jectReference.md`=20to=20=D0=A0=D1=83=D1=81=D1=81=D0=BA=D0=B8?=
=?UTF-8?q?=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../experimental_taintObjectReference.md | 66 +++++++++----------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/src/content/reference/react/experimental_taintObjectReference.md b/src/content/reference/react/experimental_taintObjectReference.md
index c7b565e9b6..f599749262 100644
--- a/src/content/reference/react/experimental_taintObjectReference.md
+++ b/src/content/reference/react/experimental_taintObjectReference.md
@@ -1,3 +1,4 @@
+```html
---
title: experimental_taintObjectReference
version: experimental
@@ -5,30 +6,29 @@ version: experimental
-**This API is experimental and is not available in a stable version of React yet.**
+**Этот API является экспериментальным и еще не доступен в стабильной версии React.**
-You can try it by upgrading React packages to the most recent experimental version:
+Вы можете попробовать его, обновив пакеты React до последней экспериментальной версии:
- `react@experimental`
- `react-dom@experimental`
- `eslint-plugin-react-hooks@experimental`
-Experimental versions of React may contain bugs. Don't use them in production.
+Экспериментальные версии React могут содержать ошибки. Не используйте их в продакшене.
-This API is only available inside React Server Components.
+Этот API доступен только внутри React Server Components.
-
-`taintObjectReference` lets you prevent a specific object instance from being passed to a Client Component like a `user` object.
+`taintObjectReference` позволяет предотвратить передачу конкретного экземпляра объекта в Client Component, например объекта `user`.
```js
experimental_taintObjectReference(message, object);
```
-To prevent passing a key, hash or token, see [`taintUniqueValue`](/reference/react/experimental_taintUniqueValue).
+Чтобы предотвратить передачу ключа, хэша или токена, см. [`taintUniqueValue`](/reference/react/experimental_taintUniqueValue).
@@ -36,50 +36,50 @@ To prevent passing a key, hash or token, see [`taintUniqueValue`](/reference/rea
---
-## Reference {/*reference*/}
+## Справочник {/*reference*/}
### `taintObjectReference(message, object)` {/*taintobjectreference*/}
-Call `taintObjectReference` with an object to register it with React as something that should not be allowed to be passed to the Client as is:
+Вызовите `taintObjectReference` с объектом, чтобы зарегистрировать его в React как нечто, что не должно быть передано Клиенту в неизменном виде:
```js
import {experimental_taintObjectReference} from 'react';
experimental_taintObjectReference(
- 'Do not pass ALL environment variables to the client.',
+ 'Не передавайте ВСЕ переменные окружения клиенту.',
process.env
);
```
-[See more examples below.](#usage)
+[См. больше примеров ниже.](#usage)
-#### Parameters {/*parameters*/}
+#### Параметры {/*parameters*/}
-* `message`: The message you want to display if the object gets passed to a Client Component. This message will be displayed as a part of the Error that will be thrown if the object gets passed to a Client Component.
+* `message`: Сообщение, которое вы хотите отобразить, если объект будет передан в Client Component. Это сообщение будет отображаться как часть ошибки, которая будет выброшена, если объект будет передан в Client Component.
-* `object`: The object to be tainted. Functions and class instances can be passed to `taintObjectReference` as `object`. Functions and classes are already blocked from being passed to Client Components but the React's default error message will be replaced by what you defined in `message`. When a specific instance of a Typed Array is passed to `taintObjectReference` as `object`, any other copies of the Typed Array will not be tainted.
+* `object`: Объект, который нужно пометить. Функции и экземпляры классов могут быть переданы в `taintObjectReference` как `object`. Функции и классы уже заблокированы для передачи в Client Components, но стандартное сообщение об ошибке React будет заменено тем, что вы определили в `message`. Когда конкретный экземпляр Typed Array передается в `taintObjectReference` как `object`, любые другие копии этого Typed Array не будут помечены.
-#### Returns {/*returns*/}
+#### Возвращает {/*returns*/}
-`experimental_taintObjectReference` returns `undefined`.
+`experimental_taintObjectReference` возвращает `undefined`.
-#### Caveats {/*caveats*/}
+#### Ограничения {/*caveats*/}
-- Recreating or cloning a tainted object creates a new untainted object which may contain sensitive data. For example, if you have a tainted `user` object, `const userInfo = {name: user.name, ssn: user.ssn}` or `{...user}` will create new objects which are not tainted. `taintObjectReference` only protects against simple mistakes when the object is passed through to a Client Component unchanged.
+- Воссоздание или клонирование помеченного объекта создает новый непомеченный объект, который может содержать конфиденциальные данные. Например, если у вас есть помеченный объект `user`, `const userInfo = {name: user.name, ssn: user.ssn}` или `{...user}` создадут новые объекты, которые не помечены. `taintObjectReference` защищает только от простых ошибок, когда объект передается в Client Component без изменений.
-**Do not rely on just tainting for security.** Tainting an object doesn't prevent leaking of every possible derived value. For example, the clone of a tainted object will create a new untainted object. Using data from a tainted object (e.g. `{secret: taintedObj.secret}`) will create a new value or object that is not tainted. Tainting is a layer of protection; a secure app will have multiple layers of protection, well designed APIs, and isolation patterns.
+**Не полагайтесь только на пометку для обеспечения безопасности.** Пометка объекта не предотвращает утечку всех возможных производных значений. Например, клон помеченного объекта создаст новый непомеченный объект. Использование данных из помеченного объекта (например, `{secret: taintedObj.secret}`) создаст новое значение или объект, который не помечен. Пометка — это уровень защиты; безопасное приложение будет иметь несколько уровней защиты, хорошо спроектированные API и паттерны изоляции.
---
-## Usage {/*usage*/}
+## Использование {/*usage*/}
-### Prevent user data from unintentionally reaching the client {/*prevent-user-data-from-unintentionally-reaching-the-client*/}
+### Предотвращение непреднамеренной передачи пользовательских данных клиенту {/*prevent-user-data-from-unintentionally-reaching-the-client*/}
-A Client Component should never accept objects that carry sensitive data. Ideally, the data fetching functions should not expose data that the current user should not have access to. Sometimes mistakes happen during refactoring. To protect against these mistakes happening down the line we can "taint" the user object in our data API.
+Client Component никогда не должен принимать объекты, содержащие конфиденциальные данные. В идеале, функции получения данных не должны раскрывать данные, к которым текущий пользователь не должен иметь доступа. Иногда ошибки случаются во время рефакторинга. Чтобы защититься от таких ошибок в будущем, мы можем "пометить" объект пользователя в нашем API данных.
```js
import {experimental_taintObjectReference} from 'react';
@@ -87,21 +87,21 @@ import {experimental_taintObjectReference} from 'react';
export async function getUser(id) {
const user = await db`SELECT * FROM users WHERE id = ${id}`;
experimental_taintObjectReference(
- 'Do not pass the entire user object to the client. ' +
- 'Instead, pick off the specific properties you need for this use case.',
+ 'Не передавайте весь объект пользователя клиенту. ' +
+ 'Вместо этого выбирайте конкретные свойства, которые вам нужны для данного случая использования.',
user,
);
return user;
}
```
-Now whenever anyone tries to pass this object to a Client Component, an error will be thrown with the passed in error message instead.
+Теперь, когда кто-либо попытается передать этот объект в Client Component, будет выброшена ошибка с переданным сообщением об ошибке.
-#### Protecting against leaks in data fetching {/*protecting-against-leaks-in-data-fetching*/}
+#### Защита от утечек при получении данных {/*protecting-against-leaks-in-data-fetching*/}
-If you're running a Server Components environment that has access to sensitive data, you have to be careful not to pass objects straight through:
+Если вы работаете в среде Server Components, имеющей доступ к конфиденциальным данным, вы должны быть осторожны, чтобы не передавать объекты напрямую:
```js
// api.js
@@ -117,7 +117,7 @@ import { InfoCard } from 'components.js';
export async function Profile(props) {
const user = await getUser(props.userId);
- // DO NOT DO THIS
+ // НЕ ДЕЛАЙТЕ ЭТОГО
return ;
}
```
@@ -131,8 +131,7 @@ export async function InfoCard({ user }) {
}
```
-Ideally, the `getUser` should not expose data that the current user should not have access to. To prevent passing the `user` object to a Client Component down the line we can "taint" the user object:
-
+В идеале, `getUser` не должен раскрывать данные, к которым текущий пользователь не должен иметь доступа. Чтобы предотвратить передачу объекта `user` в Client Component в дальнейшем, мы можем "пометить" объект пользователя:
```js
// api.js
@@ -141,14 +140,15 @@ import {experimental_taintObjectReference} from 'react';
export async function getUser(id) {
const user = await db`SELECT * FROM users WHERE id = ${id}`;
experimental_taintObjectReference(
- 'Do not pass the entire user object to the client. ' +
- 'Instead, pick off the specific properties you need for this use case.',
+ 'Не передавайте весь объект пользователя клиенту. ' +
+ 'Вместо этого выбирайте конкретные свойства, которые вам нужны для данного случая использования.',
user,
);
return user;
}
```
-Now if anyone tries to pass the `user` object to a Client Component, an error will be thrown with the passed in error message.
+Теперь, если кто-либо попытается передать объект `user` в Client Component, будет выброшена ошибка с переданным сообщением.
+```
\ No newline at end of file
From 0014bad5739fc508023e5d6bf58d64a10c75e5b9 Mon Sep 17 00:00:00 2001
From: "translate-react-bot[bot]"
<251169733+translate-react-bot[bot]@users.noreply.github.com>
Date: Mon, 18 May 2026 16:29:56 +0000
Subject: [PATCH 2/2] =?UTF-8?q?docs:=20translate=20`experimental=5FtaintOb?=
=?UTF-8?q?jectReference.md`=20to=20=D0=A0=D1=83=D1=81=D1=81=D0=BA=D0=B8?=
=?UTF-8?q?=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../experimental_taintObjectReference.md | 29 +++++++++----------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/src/content/reference/react/experimental_taintObjectReference.md b/src/content/reference/react/experimental_taintObjectReference.md
index f599749262..a1744047aa 100644
--- a/src/content/reference/react/experimental_taintObjectReference.md
+++ b/src/content/reference/react/experimental_taintObjectReference.md
@@ -1,12 +1,10 @@
-```html
---
title: experimental_taintObjectReference
version: experimental
---
-
-**Этот API является экспериментальным и еще не доступен в стабильной версии React.**
+**Этот API является экспериментальным и пока недоступен в стабильной версии React.**
Вы можете попробовать его, обновив пакеты React до последней экспериментальной версии:
@@ -20,9 +18,10 @@ version: experimental
+
-`taintObjectReference` позволяет предотвратить передачу конкретного экземпляра объекта в Client Component, например объекта `user`.
+`taintObjectReference` позволяет предотвратить передачу конкретного экземпляра объекта, такого как объект `user`, в Client Component.
```js
experimental_taintObjectReference(message, object);
@@ -55,9 +54,9 @@ experimental_taintObjectReference(
#### Параметры {/*parameters*/}
-* `message`: Сообщение, которое вы хотите отобразить, если объект будет передан в Client Component. Это сообщение будет отображаться как часть ошибки, которая будет выброшена, если объект будет передан в Client Component.
+* `message`: Сообщение, которое вы хотите отобразить, если объект будет передан в Client Component. Это сообщение будет частью ошибки, которая будет выброшена, если объект будет передан в Client Component.
-* `object`: Объект, который нужно пометить. Функции и экземпляры классов могут быть переданы в `taintObjectReference` как `object`. Функции и классы уже заблокированы для передачи в Client Components, но стандартное сообщение об ошибке React будет заменено тем, что вы определили в `message`. Когда конкретный экземпляр Typed Array передается в `taintObjectReference` как `object`, любые другие копии этого Typed Array не будут помечены.
+* `object`: Объект для пометки. Функции и экземпляры классов могут быть переданы в `taintObjectReference` в качестве `object`. Функции и классы уже заблокированы для передачи в Client Components, но стандартное сообщение об ошибке React будет заменено тем, что вы определили в `message`. Когда конкретный экземпляр Typed Array передается в `taintObjectReference` как `object`, любые другие копии этого Typed Array не будут помечены.
#### Возвращает {/*returns*/}
@@ -65,7 +64,7 @@ experimental_taintObjectReference(
#### Ограничения {/*caveats*/}
-- Воссоздание или клонирование помеченного объекта создает новый непомеченный объект, который может содержать конфиденциальные данные. Например, если у вас есть помеченный объект `user`, `const userInfo = {name: user.name, ssn: user.ssn}` или `{...user}` создадут новые объекты, которые не помечены. `taintObjectReference` защищает только от простых ошибок, когда объект передается в Client Component без изменений.
+- Воссоздание или клонирование помеченного объекта создает новый непомеченный объект, который может содержать конфиденциальные данные. Например, если у вас есть помеченный объект `user`, `const userInfo = {name: user.name, ssn: user.ssn}` или `{...user}` создадут новые объекты, которые не помечены. `taintObjectReference` защищает только от простых ошибок при передаче объекта в Client Component без изменений.
@@ -79,7 +78,7 @@ experimental_taintObjectReference(
### Предотвращение непреднамеренной передачи пользовательских данных клиенту {/*prevent-user-data-from-unintentionally-reaching-the-client*/}
-Client Component никогда не должен принимать объекты, содержащие конфиденциальные данные. В идеале, функции получения данных не должны раскрывать данные, к которым текущий пользователь не должен иметь доступа. Иногда ошибки случаются во время рефакторинга. Чтобы защититься от таких ошибок в будущем, мы можем "пометить" объект пользователя в нашем API данных.
+Client Component никогда не должен принимать объекты, содержащие конфиденциальные данные. В идеале, функции получения данных не должны раскрывать данные, к которым у текущего пользователя не должно быть доступа. Иногда при рефакторинге случаются ошибки. Чтобы защититься от таких ошибок в будущем, мы можем "пометить" объект пользователя в нашем API данных.
```js
import {experimental_taintObjectReference} from 'react';
@@ -95,13 +94,13 @@ export async function getUser(id) {
}
```
-Теперь, когда кто-либо попытается передать этот объект в Client Component, будет выброшена ошибка с переданным сообщением об ошибке.
+Теперь, когда кто-либо попытается передать этот объект в Client Component, будет выброшена ошибка с указанным сообщением.
#### Защита от утечек при получении данных {/*protecting-against-leaks-in-data-fetching*/}
-Если вы работаете в среде Server Components, имеющей доступ к конфиденциальным данным, вы должны быть осторожны, чтобы не передавать объекты напрямую:
+Если вы используете среду Server Components, имеющую доступ к конфиденциальным данным, вы должны быть осторожны и не передавать объекты напрямую:
```js
// api.js
@@ -117,7 +116,7 @@ import { InfoCard } from 'components.js';
export async function Profile(props) {
const user = await getUser(props.userId);
- // НЕ ДЕЛАЙТЕ ЭТОГО
+ // НЕ ДЕЛАЙТЕ ТАК
return ;
}
```
@@ -131,7 +130,8 @@ export async function InfoCard({ user }) {
}
```
-В идеале, `getUser` не должен раскрывать данные, к которым текущий пользователь не должен иметь доступа. Чтобы предотвратить передачу объекта `user` в Client Component в дальнейшем, мы можем "пометить" объект пользователя:
+В идеале, `getUser` не должен раскрывать данные, к которым у текущего пользователя не должно быть доступа. Чтобы предотвратить передачу объекта `user` в Client Component далее по цепочке, мы можем "пометить" объект пользователя:
+
```js
// api.js
@@ -148,7 +148,6 @@ export async function getUser(id) {
}
```
-Теперь, если кто-либо попытается передать объект `user` в Client Component, будет выброшена ошибка с переданным сообщением.
+Теперь, если кто-либо попытается передать объект `user` в Client Component, будет выброшена ошибка с указанным сообщением.
-
-```
\ No newline at end of file
+
\ No newline at end of file