Ограничение публичного доступа
По умолчанию публичные URL принимают запросы без аутентификации. Чтобы потребовать токен песочницы, при её создании передайте false в allowPublicTraffic для JavaScript или allow_public_traffic для Python.
mjs
import { Sandbox } from "@abox-dev/sdk";
const sandbox = await Sandbox.create({
network: { allowPublicTraffic: false },
});
try {
await sandbox.commands.run("python3 -m http.server 8080", {
background: true,
});
await sandbox.commands.run(
"until curl -fsS http://127.0.0.1:8080/ >/dev/null; do sleep 0.1; done",
);
const url = `https://${sandbox.getHost(8080)}`;
const anonymousResponse = await fetch(url);
console.log(`Without token: ${anonymousResponse.status}`);
const authorizedResponse = await fetch(url, {
headers: {
"Agentbox-Traffic-Access-Token": sandbox.trafficAccessToken,
},
});
console.log(`With token: ${authorizedResponse.status}`);
} finally {
await sandbox.kill();
}Запрос без токена получает ответ 403. Передавайте токен в заголовке Agentbox-Traffic-Access-Token. Получите его из sandbox.trafficAccessToken или sandbox.traffic_access_token, но не выводите и не сохраняйте в журналах приложения.
Настройка защищает входящие запросы ко всем публичным URL песочницы. Она не отключает исходящий доступ в интернет и команды SDK. Исходящие соединения настраиваются отдельно в разделе «Доступ в интернет».