2011-03-19 6 views
1

I Désactiver une zone de texte par code C# dans une page ASP.net avec le code ci-dessous: Textbox1.Enabled = false; pour empêcher l'utilisateur de modifier une valeur spécifique. comme vous le savez Textbox1.Enabled = false; en mode html convertira en disabled = "disabled" css prpoerties. mais malheureusement, l'utilisateur final peut supprimer ces propriétés css par Firefox Firebug et activer la zone de texte et appuyez sur le bouton Envoyer et envoyer la valeur modifiée au serveur. alors que puis-je faire?pourquoi un élément désactivé peut être activé par l'utilisateur final?

+1

Rejeter la valeur dans le serveur? –

Répondre

2

Vous ne devriez jamais faire confiance à l'utilisateur. Tout ce qui est soumis via le formulaire de site Web est une entrée de l'utilisateur. Il n'y a rien que vous puissiez faire pour empêcher quelqu'un de soumettre quoi que ce soit, et ils ne devraient même pas essayer. À la place, vous devriez vérifier/valider ces valeurs sur le serveur. Si c'est une valeur que vous voulez simplement leur montrer, mais ne leur permettez pas de changer, alors ne faites pas que votre code-behind vérifie la valeur du tout ... puisque vous savez que cela ne devrait pas changer.

Si vous activez/désactivez cette TextBox selon que l'utilisateur est un 'admin' ou quelque chose comme ça ... alors vous vous trompez.

+0

on devrait aussi préférer utiliser des étiquettes pour les valeurs en lecture seule. (Ces jours-ci, les utilisateurs sont de plus en plus techniques et peuvent trouver plus de moyens de casser l'application.). Toujours valider les données du côté client et serveur. Utilisez les meilleures ressources pour répondre à vos besoins, comme dans votre cas, vous pouvez utiliser l'étiquette et la faire ressembler à une zone de texte readonly avec css. – Avi

0

La même chose que pour toutes les données que vous obtenez du navigateur.

  • confiance seulement autant que vous faites confiance à l'utilisateur (et un peu moins de que si vous ne l'utilisez SSL)
    • utilisateurs non fiables pourriez faire une attaque
    • utilisateurs de confiance pourraient formulerai une erreur
  • Vérifiez qu'il est sain d'esprit (si quelque condition qui cause le champ est désactivé est vrai, puis vérifiez que le champ n'est pas soumis)
  • échapper à toute données avant de l'utiliser (par exemple pour SQL avant de l'insérer dans une base de données et pour le HTML avant de le placer dans un document HTML).
Questions connexes