Database
Data Masking
QueryValidateHard
Description
Mask sensitive data (emails, names) for privacy.
Test Scenario
-- Your query:
SELECT
id,
SUBSTR(name, 1, 1) || '***' as masked_name,
SUBSTR(email, 1, 2) || '***@***' || SUBSTR(email, -4) as masked_email
FROM users;
-- Expected:
-- 1 | J*** | jo***@***.com
-- 2 | J*** | ja***@***.comTesting Tips
- •SUBSTR extracts part of string
- •REPLACE substitutes characters
- •Combine functions for masking
// Playwright API Testing - Databaseimport { test, expect } from '@playwright/test';test('Database query via API', async ({ request }) => {const response = await request.post('/api/database/query', {data: {sql: 'SELECT * FROM users WHERE id = ?',params: [1]}});expect(response.ok()).toBeTruthy();const { rows } = await response.json();expect(rows.length).toBeGreaterThan(0);});
Challenge ID: sql-data-masking
2 frameworks available