He estado buscando una manera de detectar posibles infracciones de registro de PII mediante reglas de linting. Específicamente, si tengo un objeto que contiene PII, me gustaría marcar los campos que se espera que contengan PII para que no se registre sin darse cuenta, es decir, evitar una situación como la siguiente:
interface Member { id: string, email: string, // other non-pii fields } .... const m: Member = getMemberFromRequest(request); .... if (condition) { logger.info(`No fluffy bunnies found for ${m.email}`); } Mi primer pensamiento sería agregar algún tipo de anotación en la propiedad del objeto (por ejemplo, @PII ), luego escribir reglas de linter para asegurarme de que la propiedad específica no se use como parte de una cadena literal en alguna parte. Hasta ahora, solo me he encontrado con un linter PII que analiza comentarios o cadenas literales ( eslint-plugin-pii ).
Con mecanografiado, supongo que otra posibilidad sería declarar un alias de tipo para string y tener una regla tslint para evitar que ese tipo se use en los registros.
¿Alguno de estos enfoques es viable (o bueno)? ¿Hay mejores alternativas que no he encontrado?