Η μέθοδος FormsAuthentication.SignOut δεν εμποδίζει το cookie απόκρισης επιθέσεις σε εφαρμογές ASP.NET

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 900111 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Πληροφορίες για την έκδοση Beta
Αυτό το άρθρο ασχολείται με την έκδοση Beta ενός προϊόντος της Microsoft. Οι πληροφορίες αυτού του άρθρου παρέχονται ως έχουν και μπορεί να αλλάξουν χωρίς προειδοποίηση.

Δεν διατίθεται επίσημη υποστήριξη προϊόντος από τη Microsoft για αυτό το προϊόν Beta. Για πληροφορίες σχετικά με τη λήψη υποστήριξης για μια έκδοση Beta, ανατρέξτε στην τεκμηρίωση που περιλαμβάνεται στα αρχεία του προϊόντος Beta ή στην τοποθεσία Web από την οποία κάνατε λήψη της συγκεκριμένης έκδοσης.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο περιγράφει τους περιορισμούς τουFormsAuthentication.SignOutη μέθοδος, και παρέχει περισσότερες πληροφορίες σχετικά με τον τρόπο για να διευκολύνετε το cookie απόκρισης επιθέσεις κατά ένα cookie ελέγχου ταυτότητας φορμών μπορεί να έχει ήδη αποκτήσει από έναν κακόβουλο χρήστη. Το άρθρο αυτό παρουσιάζει τις ακόλουθες μεθόδους που μπορείτε να χρησιμοποιήσετε για τη μείωση των εισβολών cookie σε εφαρμογές του Microsoft ASP.NET:
  • Προστασία της εφαρμογής με χρήση SSL
    Ρυθμίστε τις παραμέτρους της εφαρμογής Web στο Microsoft Internet Information Services (IIS), έτσι ώστε να απαιτείται SSL. Εάν το κάνετε αυτό, βεβαιωθείτε ότι η δυνατότητα ελέγχου ταυτότητας φορμών θα εκδώσει ποτέ ένα cookie μέσω σύνδεσης μη SSL.
  • Επιβολή TTL και απόλυτη λήξης
    Εάν χρησιμοποιείτε μια μικρή τιμή TTL, μπορείτε να μειώσετε τις πιθανότητες μιας επίθεσης. Πρέπει επίσης να χρησιμοποιείτε απόλυτη λήξης αντί για ολίσθηση λήξης.
  • Χρήση ελέγχου ταυτότητας των cookies και φόρμες HttpOnly στο ASP.NET 2.0
    Στο ASP.NET 2.0, τα cookie ελέγχου ταυτότητας φορμών είναι HttpOnly τα cookies. HttpOnly τα cookies δεν είναι δυνατή μέσω δέσμης ενεργειών του υπολογιστή-πελάτη. Αυτή η λειτουργία σάς βοηθά να μειώσετε τις πιθανότητες εισβολών.
  • Χρήση της ιδιότητας μέλους κλάσης στο ASP.NET 2.0
    Στο ASP.NET 2.0, μπορείτε να προστατεύσετε τα cookie ελέγχου ταυτότητας φορμών από τη χρήση με κακόβουλη πρόθεση, αποθηκεύοντας τις πληροφορίες χρήστη τουMembershipUserObject.

ΕΙΣΑΓΩΓΗ

Αυτό το άρθρο περιγράφει ένα ζήτημα που ενδέχεται να παρουσιαστεί όταν λαμβάνεται ένα cookie ελέγχου ταυτότητας φορμών από έναν κακόβουλο χρήστη. Σε αυτό το σενάριο, το cookie μπορεί να χρησιμοποιηθεί για τον έλεγχο ταυτότητας φορμών ενός ελέγχου ταυτότητας της εφαρμογής ASP.NET μετά τηνFormsAuthentication.SignOutέχει γίνει κλήση της μεθόδου. Ένας κακόβουλος χρήστης δεν θα έχει τρόπο να αποκτήσετε το cookie ελέγχου ταυτότητας φορμών από κάποιον άλλο χρήστη, εκτός αν έχει γίνει γνωστός στο σύστημα του χρήστη.

Περισσότερες πληροφορίες

Για ναFormsAuthentication.SignOutη μέθοδος καταργεί το cookie ελέγχου ταυτότητας φορμών από τον υπολογιστή-πελάτη. Ωστόσο, τοFormsAuthentication.SignOutμέθοδος δεν αποθηκεύει τυχόν μόνιμη αναπαράσταση του χρήστη υπογραφή το διακομιστή. Επομένως, αν το cookie ελέγχου ταυτότητας φορμών δεν είναι κατάλληλα προστατευμένο και το cookie λαμβάνεται με κακόβουλη πρόθεση από τρίτο μέρος, αυτό το cookie μπορεί να χρησιμοποιηθεί για τον έλεγχο ταυτότητας στο διακομιστή μετά τηνFormsAuthentication.SignOutmethod has been called. This behavior can occur until the expiration of the forms authentication ticket that is contained in the cookie.

ΣΗΜΕΙΩΣΗAlthough a cookie also has expiration, forms authentication always uses the expiration time that is contained inside the forms authentication ticket when forms authentication determines whether the ticket is considered expired.

To help reduce the chances of such an attack, help enhance the protection of the forms authentication cookie by using Secure Sockets Layer (SSL). You should also use absolute expiration instead of a sliding expiration. Absolute expiration restricts the Time to Live (TTL) for the forms authentication ticket.

ASP.NET 2.0 also adds functionality that you can use to help reduce replay attacks by using the forms authentication cookie. Μπορείτε να χρησιμοποιήσετε τοMembershipclass in ASP.NET 2.0 to promote a more secure solution to sign out forms authentication users.

Help protect the application by using SSL

By configuring the Web application in Microsoft Internet Information Services (IIS) so that SSL is required, all information that is passed between the client and the Web browser will be encrypted. When you use this method, therequireSSLχαρακτηριστικό με το<forms></forms>element should also be set toTrue. When this attribute isTrue, a compliant browser will not send the cookie unless the connection is being sent through SSL, and the forms authentication feature will never issue a cookie over a non-SSL connection.

In cases where a site has some pages that are under SSL and other pages that are not under SSL, therequireSSLattribute is designed to make sure that the browser does not send the forms authentication cookie when non-SSL pages are requested. However, the user agent has the responsibility to enforce the rule that the browser does not send the forms authentication cookie when non-SSL pages are requested. Therefore, if you configure the whole application to require SSL, you help enhance security.

For more information about how to configure an application for SSL, click the following article number to view the article in the Microsoft Knowledge Base:
299875How to implement SSL on a Windows 2000 IIS 5.0 computer

Enforce TTL and absolute expiration

By using a short TTL that can be configured through thetimeoutχαρακτηριστικό με το<forms></forms>element, you can help reduce the risk of a cookie replay attack. You also must notice that theslidingExpirationattribute should be set toFALSE. By default, the setting in ASP.NET 2.0 isTrue.

Use HttpOnly cookies and forms authentication in ASP.NET 2.0

In ASP.NET 2.0, forms authentication cookies are HttpOnly cookies. HttpOnly cookies cannot be accessed by using a client script. Ωστόσο, τοHttpOnlyproperty is only available in Microsoft Internet Explorer 6 Service Pack 1 (SP1). Previous user agents will ignore the property.

For more information about HttpOnly cookies, visit the following Microsoft Developer Network (MSDN) Web site:
http://msdn2.microsoft.com/en-us/library/ms533046.aspx

Use the Membership class in ASP.NET 2.0

When you implement forms authentication in ASP.NET 2.0, you have the option of storing user information in aMembershipprovider. This option is a new feature that is introduced in ASP.NET 2.0. Για ναMembershipUserobject contains specific users.

If the user is logged in, you can store this information in theΣχόλιοη ιδιότητα από τοMembershipUserObject. If you use this property, you can develop a mechanism to reduce cookie replay issues in ASP.NET 2.0. This mechanism would follow these steps:
  1. You create an HttpModule that hooks thePostAuthenticateRequestΣυμβάν.
  2. Στην περίπτωση που απαιτείταιFormsIdentityobject is in theHttpContext.Userη ιδιότητα, τοFormsAuthenticationModuleclass recognizes the forms authentication ticket as valid. Then, thecustom HttpModuleclass obtains a reference to theMembershipUserinstance that is associated with the authenticated user.
  3. You examine theΣχόλιοproperty to determine whether the user is currently logged in.

    ΣημαντικόYou must store information in theΣχόλιοproperty that indicates when the user explicitly signed out. Also, you must clear the information that is in theΣχόλιοproperty when the customer eventually signs in again.
If the user is not currently logged in as indicated by theΣχόλιοproperty, you must take the following actions:
  1. Clear the cookie.
  2. Ορισμός τουResponse.Statusproperty to 401.
  3. Make a call to theResponse.Endmethod that will implicitly redirect the request to the logon page.
By using this method, the forms authentication cookie will only be accepted if the user has not been explicitly signed out and the forms authentication ticket has not yet expired.

Αναφορές

For more information about how to help protect forms authentication cookies by using SSL, click the following article number to view the article in the Microsoft Knowledge Base:
813829Βοήθεια φόρμες με ασφαλή έλεγχο ταυτότητας με χρήση του Secure Sockets Layer (SSL)

Ιδιότητες

Αναγν. άρθρου: 900111 - Τελευταία αναθεώρηση: Παρασκευή, 24 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 2.0
Λέξεις-κλειδιά: 
kbauthentication kbprogramming kbiis kbsecurity kbservicepack kbhowto kbinfo kbmt KB900111 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:900111

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com