1
votes

Regex pour filtrer l'adresse e-mail dans les URL

J'ai besoin de filtrer toutes les demandes de spam dans notre URL qui ont une adresse e-mail ou toute sorte d'informations personnelles.

Par exemple: si quelqu'un entre l'URL

www.mondomaine.com/en-us?email=abc@gmail.com

il devrait rediriger vers

www.mondomaine.com/en-us?email=

[Utilisez l'expression régulière pour faire correspondre le modèle à l'e-mail et supprimez-le] en gros, il devrait garder l'URL telle quelle et supprimer l'adresse e-mail

un autre exemple

Redirection

www.mondomaine.com/en-us/sompePage/SomeStructure?query=abc.gmail.com

à

www.mondomaine.com/en-us/sompePage/SomeStructure?query=

Voici ce que j'ai essayé:

(http | https): //mondomaine.com/ (^ ((?! \.) [\ w-_.] * [^.]) (@ \ w +) (\. \ w + (\. \ w +)? [^. \ W]) $ mais jette une erreur Récit et raisonnement, si intéressé

Nous avons examiné Google Analytics et nous nous sommes rendu compte que notre site Web recevait une adresse e-mail aléatoire avec une chaîne de requête aléatoire. Mais Google les marque comme stockant des informations personnelles et les considère donc comme une violation de la politique. Sl nous essayons de placer des regex dans akamai afin que ces requêtes n'atteignent jamais le serveur. (Nous avons également un javascript de secours en place pour gérer la même chose)


0 commentaires

4 Réponses :


0
votes

Vos exemples ne sont pas très bons pour expliquer le problème. Le principal problème est de savoir comment identifier le «courrier» que vous souhaitez supprimer.

J'adopterais une autre approche:

use strict;
use warnings;

use Data::Dumper;

my $debug = 0;

my %url;

while( <DATA> ) {
    print if $debug;

    chomp;

    m|(https{0,1})://([\w\d\.]+)/(.*)\?(.*)|;

    @url{qw(proto dn path query)} = ($1,$2,$3,$4);

    print Dumper(\%url) if $debug;

    # now do whatever your heart desire with $url{query}

    $url{query} =~ /(.*=)/;
    $url{query} = $1;

    print Dumper(\%url) if $debug;

    printf "%s://%s/%s/%s\n",
                $url{proto},    # protocol
                $url{dn},       # domain name
                $url{path},     # directory path
                $url{query};    # query

}

__DATA__
http://www.example.org/en-us?email=abc@gmail.com
https://www.example.org/en-us/sompePage/SomeStructure?query=abc.gmail.com


0 commentaires

0
votes

Eh bien, j'ai lu votre question une fois de plus et j'ai réalisé que probablement akamai n'autorise que la modification de regex et n'inclut pas de scripts Perl à part entière.

Alors ce que vous cherchez sera probablement s | =. * | = | ou s/=.*/=/

use strict;
use warnings;

while( <DATA> ) {
    s|=.*|=|;
    print;
}

__DATA__
www.mydomain.com/en-us?email=abc@gmail.com
www.mydomain.com/en-us/sompePage/SomeStructure?query=abc.gmail.com

Mais encore une fois, cette méthode n'identifie pas e-mail dans la requête. Votre question n'est pas complète pour porter un jugement complet sur le problème.

Vous pouvez essayer s / [\ w \ d \. \ -] + @ [\ w \ d \.] + / / comme e-mail correspondant à l'expression régulière de remplacement.


3 commentaires

je ne sais pas quelle est la confusion. Tout ce que je veux, c'est supprimer l'adresse e-mail de l'URL. le reste de l'URL renvoie la même chose. J'essaye de trouver le regex qui trouverait l'e-mail dans l'url


Aurez-vous d'autres paramètres en question? Que comptez-vous en faire? Voir ci-dessus s / [\ w \ d \. \ -] @ [\ w \ d \. \ *] // il devrait supprimer l'adresse e-mail s'il n'y a pas d'autres paramètres fournis. Sinon, vous devez fournir un " arrêt " après l'e-mail et probablement ce " arrêt " sera le symbole & (vous devez voir comment il est encodé dans la requête). Par exemple, abc.gmail.com ne correspond pas à l'adresse e-mail (l'e-mail doit ressembler à utilisateur @ domaine où l'utilisateur peut inclure < i> lettres / chiffres /./- et domaine lettres / chiffres /./- ).


Veuillez vérifier la question suivante concernant la vérification de l'adresse e-mail. En particulier, vous devriez vous référer à la RFC822 Section 6.1 pour la «spécification» de l'adresse e-mail. Désolé, dans la réponse précédente, veuillez lire s / [\ w \ d \. \ -] + @ [\ w \ d \.] + //



-1
votes

Le code de Email :: Valide contient une regex pour valider une adresse e-mail . C'est plutôt plus complexe que la plupart des gens ne le pensent :-)


0 commentaires

0
votes

MODIFIER:

En y regardant de plus près, j'ai oublié que nous avions ajouté la correspondance avec les expressions régulières. Notre moteur RegEx utilise par défaut la syntaxe PCRE, vous pouvez donc théoriquement faire une correspondance complète dans toute la chaîne de requête: correspondance sur expression régulière

Vérifiez et testez sur la plate-forme de préparation avant de vous engager Et vérifiez le RegEx. J'ai pris cela sur emailregex.com et je ne l'ai pas testé moi-même.

<↓ORIGINAL:

Avec Akamai, l'outil Property Manager vous permet de le faire avec une nouvelle règle. Vous devriez vérifier la documentation et tester avant de déployer, ou consulter votre équipe de compte pour des questions plus spécifiques.

Dans la règle, vous voudrez ajouter une correspondance pour la chaîne de requête comme ceci: gestionnaire immobilier avec nouvelle règle et correspondance

À partir de là, ajoutez le comportement pour que la plate-forme Akamai fasse ce que vous voulez. S'il s'agit d'une simple redirection, vous pouvez utiliser le comportement Redirection et supprimer complètement les chaînes de requête. Quelque chose comme ça: comportement de redirection

Comme l'indique la boîte d'informations, ce cas d'utilisation spécifique pourrait être mieux géré avec le Redirector Cloudlet. Mais il y a beaucoup de choses que vous pouvez faire une fois que vous avez trouvé cette chaîne de requête.


0 commentaires