Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu-partiellement] Empêcher url dans un champ texte de formulaire
#1
Bonjour à tous, j'essaie de trouver la meilleur solution avec Made Simple pour empêcher une écriture de lien dans un champ texte.

J'ai fait des recherches mais j'avoue me sentir un peu perdue et ne pas trop savoir où régler le problème...

J'ai un simple formulaire dont les données s'inscrivent dans une bd avec formbuilder et ensuite les info de la bd s'inscrivent sur ma page avec formbrowser.

Il y a un petit comique qui n'arrête pas d'envoyer l'url de pages très peu recommandables.

J'aurais dû penser avant à la sécurité mais bon, maintenant que j'ai un problème j'y pense !

C'est quand même pas dramatique, en attendant, je le supprime à la main.

Merci d'avance de votre aide Smile




Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.6.7
#~ Nom de l'hébergeur :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.6.7
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.2
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.2
#~ * News: 2.10.4
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.0.4
#~ * Search: 1.6.1
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.6.2
#~ * Calendar: 0.8.2
#~ * FormBuilder: 0.5.11
#~ * CGExtensions: 1.15.2
#~ * Album: 0.9.3
#~ * NMS: 2.2.2
#~ * FormBrowser: 0.2.3
#~
#~ Config Information:
#~ * php_memory_limit: 64M
#~ * process_whole_template: false
#~ * max_upload_size: 30000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: true
#~ * page_extension: .html
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 5.2.9
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * memory_limit: 64M
#~ * max_execution_time: 30
#~ * safe_mode: Off (Faux)
#~ * session_save_path: /tmp (1777)
#~ * session_use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: cgi
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.0.90
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
C'est en forgeant que l'on devient forgeron !
Répondre
#2
C'est à double tranchant, si tu interdis l'écriture d'url, plus personne ne pourra t'envoyer un lien.
Si ce sont tout le temps les mêmes url que ton comique t'envoie, tu peux ajouter une tag refusant la validation si la valeur entrée est égale à une des urls prohibées.

// Le "i" après le délimiteur du pattern indique que la recherche ne sera pas sensible à la casse
if (preg_match("/siteDuComique/i", $_POSTdeTonChampTexte)) {
refuser_ la_validation();
}
Répondre
#3
Bonjour Jean et merci pour ta réponse.

Le formulaire en question est là comme pétition et donc, personne n'a à envoyer de lien. Seulement, nom, prénom, ville et pays.

Le petit comique n'est pas fou, avec l'url, il poste toujours des caractères bidons et donc, pas moyen de faire de validation comme tu le proposes, à moins que l'on puisse valider : "si la valeur contient..." ?

Voici à quoi ressemble ses post: aljhobiaude <a href="....."> jaaksdjfpo

Comme je le disais, c'est juste chiant et facilement supprimable....
C'est en forgeant que l'on devient forgeron !
Répondre
#4
Encore moi, comme je terminais mon dernier post, je suis retourné et le vilain avait encore sévit. Ce n'est pas la même url que les autres fois.... Il en a plusieurs et j'ai commencé à les prendre en note au cas où ça me servirait.....
C'est en forgeant que l'on devient forgeron !
Répondre
#5
Tu peux aussi tenter les logs serveur et voir s'il n'a pas un ip fixe. Si c'est le cas, interdit-le de séjour avec ton .htaccess.
J'ai fait cela pour quelques domaine : ip russe, chinoises...
Répondre
#6
Re-bonjour Jean, c'est une bonne idée, je n'avais même pas réalisé qu'on avait un log qui nous permettait de voir l'ip de nos visiteurs....

Bon, je suis allé vérifié et j'ai pris en note une adresse ip qui je crois pourrais être la bonne...

Mais faut quand même être certain de son coup non ?

De toutes façons, je surveille ce qui se passe et je vais bien voir si c'est toujours la même adresse....

Merci pour les bons conseils,
A+
Smile
C'est en forgeant que l'on devient forgeron !
Répondre
#7
l'IP sera un court répis

je serais plus tenté d'intégré une balise qui filtrerais les message contenant des regex type "<a" et effectuerait des requêtes de suppression à la volée

aucun affichage et une suppression au passage Smile
Répondre
#8
Bonjour Bess,

Oui c'est une idée et on fait ça comment ? Peux-tu me donner une piste ?

Sinon, je vais peut-être laissé aller. C'est une pétition que je gère bénévolement et je vais choisir la solution la plus simple et me demandant le moins de temps....

Merci Smile
C'est en forgeant que l'on devient forgeron !
Répondre
#9
CONNAISSANCES REQUISES : PHP / SQL / CMSMS habitué

sans te faire l'UDT complet mais en restant ultra simple

delete from ma_table_pétition where mon_message like '%<a%'

ou

delete from ma_table_pétition where mon_message like '%<a%'

ca dépend de comment est enregistré le message de ton sondage : vérifie en bdd.

dans une UDT tu te connect à la BDD (cherche 5 minute sur le forum pour ca, on en parle toutes les semaines)
tu exécute la requête du dessus en personnalisant le nom de table + nom de colonne

tu enregistre ton UDT

tu fait appel à ton UDT depuis la page qui liste les résultats, du coup au chargement de la page il va supprimer les merdes PUIS afficher la liste (épurée)
Répondre
#10
Re-bonjour Bess,
Bon, j'ai quelques bases mais je devrai "gosser" un peu (comme on dit ici au Québec) et me documenter. Je crois pouvoir y arriver.

Je prends en note les info que tu m'as donné et je vais voir ce que je vais décider de faire...

Merci pour ton aide toujours bien appréciée ! Smile
C'est en forgeant que l'on devient forgeron !
Répondre
#11
bess a écrit :l'IP sera un court répis

je serais plus tenté d'intégré une balise qui filtrerais les message contenant des regex type "<a" et effectuerait des requêtes de suppression à la volée

aucun affichage et une suppression au passage Smile
Pas bon, tu supprimeras tous les messages contenant la balise <a, y compris ceux des clients qui veulent faire part de leur adresse internet.
Répondre
#12
yep mais :

Citation :Le formulaire en question est là comme pétition et donc, personne n'a à envoyer de lien. Seulement, nom, prénom, ville et pays.
pas d'url attendue, ma méthode est bonne
Répondre
#13
Exact Bess. Ça m'était sorti de la tête.
Une regex de validation serait plus appropriée : pourquoi mettre en table pour l'effacer après ?
if (preg_match("#<#U", $_POSTdeTonChampTexte)) {
refuser_ la_validation();
}
Ainsi toute entrée avec le caractère "<" refusera la validation.

Il y a encore la technique du champ qui doit rester vide.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)