Quando sviluppiamo web app pubbliche è frequente dare la possibilità all'utente di immettere contenuti testuali, brevi o lunghi. Se questi poi vengono condivisi con altre persone, è fondamentale mettere in atto dei controlli per evitare che contenuti inappropriati vengano caricati.
A tale scopo, Microsoft ha creato una serie di servizi identificati con il nome Microsoft Cognitive Service, che risolvono facilmente questo e tanti altri problemi. Tra questi servizi sono presenti anche le content moderator API, le quali permettono di validare un testo conoscendo se sono presenti parole volgari e riconoscere numeri di telefono o indirizzi e-mail al suo interno, anche se l'utente cerca di camuffarli.
Se disponiamo già di un account Azure, usufruire di questi servizi è molto semplice: è sufficiente andare a questo indirizzo https://portal.azure.com/#create/Microsoft.CognitiveServices/apitype/ContentModerator e creare un nuovo account. Possiamo utilizzare anche la forma gratuita, più che sufficiente anche in piccole realtà.
Recuperiamo successivamente la chiave per poterci autenticare al servizio, come visibile nell'immagine seguente.
I servizi sono esposti tramite endpoint HTTP perciò sono invocabili con qualsiasi linguaggio. Per poter provare velocemente questi servizi, possiamo sfruttare la pagina di test disponibile a questo indirizzo https://docs.microsoft.com/en-us/azure/cognitive-services/content-moderator/try-text-api, cliccare su Text Moderation API Reference e scegliere la region più vicina. Ci viene presentata una pagina dove indicare la chiave, la lingua (ita nel caso di italiano) e PII per indicare se riconoscere anche numeri di telefono o e-mail.
Nel corpo del messaggio HTTP inseriamo il testo, il quale può essere anche HTML o markdown e premiamo send. Il risultato è un JSON contenente le informazioni delle parole riconosciute, simile a questo:
{ "OriginalText": "manda l'email a io at io.it, s****o", "PII": { "Email": [{ "Detected": "io@io.it", "SubType": "Suspected", "Text": "io at io.it", "Index": 16 }], "IPA": [], "Phone": [], "Address": [] }, "Terms": [{ "Index": 29, "OriginalIndex": 29, "ListId": 0, "Term": "s****o" }],
Il tool visualizza l'intera richiesta e risposta, perciò emularla con il proprio linguaggio di riferimento diventa piuttosto banale.
La documentazione è visibile a questo indirizzo
https://docs.microsoft.com/en-us/azure/cognitive-services/content-moderator/text-moderation-api
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Implementare il throttling in ASP.NET Core
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Miglioramenti nell'accessibilità con Angular CDK
Effettuare il pull di git LFS in un workflow di GitHub
Generare file per il download da Blazor WebAssembly
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Sfruttare lo streaming di una chiamata Http da Blazor
Reactive form tipizzati con FormBuilder in Angular
Le novità di Angular: i miglioramenti alla CLI
Creare un'applicazione React e configurare Tailwind CSS
Usare le variabili per personalizzare gli stili CSS
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript