Flutter SDK - Sanitizando dados sensíveis
Componentes de UI
Section titled Componentes de UIEnvolva em ORSanitizedView tudo o que não deve aparecer no replay. A região fica desfocada e hachurada na gravação, igual ao iOS SDK, e o widget se desregistra sozinho assim que sai da árvore.
import 'package:openreplay/openreplay.dart';
ORSanitizedView(
child: TextField(
controller: _cardNumber,
decoration: const InputDecoration(labelText: 'Card number'),
),
)
O mascaramento é aplicado como uma segunda passada de raster sobre o frame capturado, então nunca altera o que o seu usuário vê na tela.
Platform views
Section titled Platform viewsAs platform views — WebViews, mapas, previews da câmera — são renderizadas em camadas nativas separadas que o Flutter não consegue ler de volta, então, de outro modo, apareceriam como regiões em branco. O tracker as cobre com um placeholder por padrão. Para desativar esse comportamento, use maskPlatformViews: false:
await OpenReplay.instance.start(
projectKey: 'YOUR_PROJECT_KEY',
options: const OROptions(maskPlatformViews: false),
);
Requisições de rede
Section titled Requisições de redeOs corpos são descartados, a menos que você defina capturePayload: true, e os headers cookie, set-cookie e authorization são descartados por padrão. Além disso, o sanitizer tem a palavra final sobre cada chamada capturada:
OpenReplay.instance.patchNetwork(ORNetworkOptions(
capturePayload: true,
ignoreHeaders: ['cookie', 'set-cookie', 'authorization', 'x-api-key'],
sanitizer: (record) {
final body = record.requestBody;
if (body is Map) body.remove('password');
return record; // return null to drop the call entirely
},
));
Veja opções de rede para a lista completa de campos.
Tem dúvidas?
Section titled Tem dúvidas?Se você tiver qualquer dúvida sobre este processo, fale com a gente no nosso Slack.