Heim Backend-Entwicklung C#.Net-Tutorial asp.net bezüglich domänenübergreifender Cookie-Probleme

asp.net bezüglich domänenübergreifender Cookie-Probleme

Nov 25, 2016 am 09:19 AM
asp.net cookie

Cookies sind eine großartige Erfindung, die es Webentwicklern ermöglicht, den Anmeldestatus ihrer Benutzer beizubehalten. Es treten jedoch Probleme auf, wenn Ihre Website über mehr als einen Domainnamen verfügt. Gemäß der Cookie-Spezifikation kann ein Cookie nur für einen Domainnamen verwendet werden und nicht an andere Domainnamen gesendet werden. Wenn im Browser ein Cookie für einen Domänennamen gesetzt wird, ist das Cookie daher für andere Domänennamen nicht gültig. Wenn Sie möchten, dass sich Ihre Benutzer von einer Ihrer Websites aus und auch von anderen Domänen aus anmelden, kann dies ein echtes Problem sein.

Über Domänennamen der zweiten Ebene hinweg

Wir wissen, dass auf Cookies über Domänennamen der zweiten Ebene zugegriffen werden kann. Dies ist beispielsweise leicht zu verstehen, wenn Ihre Webanwendung unter www.test1. com erstellt ein Cookie. Wenn Sie auf die Anwendung zugreifen möchten, die einem Domänennamen der zweiten Ebene wie bbs.test1.com entspricht, müssen Sie beim Erstellen des Cookies den Domänenparameter domain=test1.com festlegen. Am Beispiel von asp.net lautet der Code wie folgt:

HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com");
cookie.Domain = "test1.com";
cookie.Path = "/";
Response.Cookies.Add(cookie);
Nach dem Login kopieren

Cross-Top-Level-Domain-Name

Wenn ich keinen Second-Level-Domain-Namen, sondern einen anderen Top-Level habe -Domänenname, zum Beispiel, wo sich www.test1.com befindet. Die Webanwendung erstellt ein Cookie und möchte darauf in der Anwendung von www.test2.com oder dem Domänennamen der zweiten Ebene zugreifen. Was soll ich tun? Wir wissen, dass mit herkömmlichen Gegenmaßnahmen nicht darauf zugegriffen werden kann. Der Schlüssel liegt darin, herauszufinden, ob es eine Möglichkeit gibt, darauf zuzugreifen. Tatsache ist, dass Cookies unter bestimmten Bedingungen domänenübergreifend sein können, anstatt nach Belieben domänenübergreifend zu sein.

Machen wir einen Test, um zu sehen, wie die beiden Websites www.test1.com und www.test2.com den domänenübergreifenden Cookie-Zugriff implementieren. Gemäß der Konvention benötigen wir zwei Domänennamen der obersten Ebene und einen DNS-Server, um den Domänennamen zu konfigurieren. Andernfalls können wir ihn nicht überprüfen, aber wir müssen hier nicht so mühsam sein. Wir können ihn durch Ändern der Hosts simulieren Datei. Es gibt eine Hosts-Datei in c:windowssystem32driversetc. Fügen Sie am Ende die Zeilen

127.0.0.1    www.test1.com
127.0.0.1    www.test2.com
Nach dem Login kopieren

hinzu, und Sie können den oben genannten Domänennamen verwenden, um auf die lokale Loopback-Adresse zuzugreifen. Wir müssen lediglich eine Reihe von Programmen auf IIS bereitstellen. Die IP ist die Loopback-Adresse des lokalen Computers und kann über zwei Domänennamen aufgerufen werden.

Wir erstellen drei neue Seiten, nämlich Default.aspx, SSO.ashx und GetCookie.aspx.

Wobei Default.aspx die Seite von www.test1.com ist und die aufgerufene Adresse http://www.test1.com/Default.aspx ist. Schauen Sie sich den Front-End-Code an, er hat keinen Back-End-Code

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Admin10000.Web.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
              <script type="text/javascript">
            var _frm = document.createElement("iframe");
            _frm.style.display = "none";
            _frm.src = "http://www.test2.com/SSO.ashx";
            document.body.appendChild(_frm);  
        </script>
       </div>
    </form>
</body>
</html>
Nach dem Login kopieren

Die andere ist die SSO.ashx-Seite, wir denken, es ist die Seite von www.test2.com , das Front-End hat keinen Code, der Back-End-Code lautet wie folgt:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.SessionState;
 
namespace Admin10000.Web
{
    /// <summary>
    /// $codebehindclassname$ 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class SSO : IHttpHandler
    {
 
        public void ProcessRequest(HttpContext context)
        {
            HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com");
            cookie.Domain = "test2.com";
            cookie.Path = "/";
            cookie.Expires = DateTime.Now.AddMinutes(10000);
            context.Response.Cookies.Add(cookie);
 
            context.Response.ContentType = "text/plain";
            context.Response.AddHeader("P3P", "CP=CAO PSA OUR");
            context.Response.Write("");
        }
 
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}
Nach dem Login kopieren

Die letzte ist die Seite GetCookie.aspx, die auch eine Seite unter www.test2 ist .com. Es gibt keinen Front-End-Code, nur Back-End-Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace Admin10000.Web
{
    public partial class GetCookie : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Cookies["name"] != null)
            {
                Response.Write(Request.Cookies["name"].Value);
            }
        }
    }
}
Nach dem Login kopieren

OK Jetzt greifen wir auf den Test zu. aspx, die Seite SSO.ashx wird über iframe geladen, der Hintergrundcode wird ausgeführt, um ein Cookie zu erstellen, und dann http:// www.test2.com/GetCookie.aspx Wir haben das entsprechende Cookie erhalten. Beachten Sie, dass unter www.test1.com erstellte Cookies unter www.test2.com abgerufen werden können.

Zu beachtende Dinge:

admin10000.com meldet, dass im Hintergrundcode von SSO.ashx ein Satz vorhanden ist: context.Response.AddHeader("P3P", "CP=CAO PSA OUR "); Wird verwendet, um den P3P-Antwortheader festzulegen. Dies liegt daran, dass das vom IE-Browser unterstützte P3P dazu führt, dass Cookies blockiert werden, wenn iframe standortübergreifend ist und keine Cookies erstellt werden können. (FireFox unterstützt derzeit keine P3P-Sicherheitsfunktionen und FireFox hat dieses Problem natürlich nicht. Es ist nicht erforderlich, einen P3P-Antwortheader hinzuzufügen.)

Verwenden Sie das src-Attribut des Iframes, um den Cookie-Wert zurückzusetzen Die test1.com-Domäne wird als Get-Parameter an die SSO.ashx-Seite unter der test2.com-Domäne weitergeleitet. SSO.ashx erhält den von der test1.com-Domäne übergebenen Cookie-Wert und schreibt den erhaltenen Wert in das Cookie der domänenübergreifende Cookie-Zugriff.

Darüber hinaus kann die Seite Default.aspx auch in das JS-Aufrufformular geändert werden:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Admin10000.Web.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <script type="text/javascript" src="http://www.test2.com/SSO.ashx"></script>
    </div>
    </form>
</body>
</html>
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So beheben Sie den Roblox 403 Forbidden-Fehler in Google Chrome So beheben Sie den Roblox 403 Forbidden-Fehler in Google Chrome May 19, 2023 pm 01:49 PM

Viele Windows-Benutzer sind kürzlich auf einen ungewöhnlichen Fehler namens „Roblox 403 Forbidden Error“ gestoßen, als sie versuchten, im Google Chrome-Browser auf Website-URLs zuzugreifen. Selbst nach mehrmaligem Neustart der Chrome-App können sie nichts tun. Für diesen Fehler kann es mehrere mögliche Ursachen geben, von denen wir einige unten aufgeführt und aufgeführt haben. Browserverlauf und anderer Cache von Chrome sowie beschädigte Daten. Instabile Internetverbindung. Falsche Website-URLs. Von Drittanbietern installierte Erweiterungen. Nach Berücksichtigung aller oben genannten Aspekte haben wir einige Korrekturen zusammengestellt, die Benutzern bei der Lösung dieses Problems helfen können. Wenn Sie auf dasselbe Problem stoßen, sehen Sie sich die Lösungen in diesem Artikel an. Lösung 1

Wo werden Cookies gespeichert? Wo werden Cookies gespeichert? Dec 20, 2023 pm 03:07 PM

Cookies werden normalerweise im Cookie-Ordner des Browsers gespeichert. Wenn Sie die Cookie-Datei direkt öffnen, wird möglicherweise ein verstümmelter oder unleserlicher Inhalt angezeigt. Verwenden Sie daher am besten die von Ihrem Browser bereitgestellte Cookie-Verwaltungsoberfläche zum Anzeigen und Verwalten von Cookies.

Wo befinden sich die Cookies auf Ihrem Computer? Wo befinden sich die Cookies auf Ihrem Computer? Dec 22, 2023 pm 03:46 PM

Cookies auf Ihrem Computer werden je nach verwendetem Browser und Betriebssystem an bestimmten Orten in Ihrem Browser gespeichert: 1. Google Chrome, gespeichert unter C:\Benutzer\IhrBenutzername\AppData\Local\Google\Chrome\User Data\Default \Cookies usw.

Wo sind die mobilen Cookies? Wo sind die mobilen Cookies? Dec 22, 2023 pm 03:40 PM

Cookies auf dem Mobiltelefon werden in der Browseranwendung des Mobilgeräts gespeichert: 1. Auf iOS-Geräten werden Cookies unter Einstellungen -> Safari -> Erweitert -> Website-Daten des Safari-Browsers gespeichert. 2. Auf Android-Geräten werden Cookies gespeichert in Einstellungen -> Site-Einstellungen -> Cookies des Chrome-Browsers usw.

Detaillierte Erklärung, wo Browser-Cookies gespeichert werden Detaillierte Erklärung, wo Browser-Cookies gespeichert werden Jan 19, 2024 am 09:15 AM

Mit der Popularität des Internets ist die Verwendung von Browsern zum Surfen im Internet zu einer Lebensweise geworden. Bei der täglichen Verwendung von Browsern stoßen wir häufig auf Situationen, in denen wir Kontokennwörter eingeben müssen, z. B. beim Online-Shopping, bei sozialen Netzwerken, bei E-Mails usw. Diese Informationen müssen vom Browser aufgezeichnet werden, damit sie bei Ihrem nächsten Besuch nicht erneut eingegeben werden müssen. Was sind Cookies? Bei einem Cookie handelt es sich um eine kleine Datendatei, die vom Server an den Browser des Benutzers gesendet und lokal gespeichert wird. Sie enthält das Benutzerverhalten einiger Websites.

Welche Gefahren birgt das Auslaufen von Cookies? Welche Gefahren birgt das Auslaufen von Cookies? Sep 20, 2023 pm 05:53 PM

Zu den Gefahren von Cookie-Lecks gehören der Diebstahl persönlicher Identitätsinformationen, die Verfolgung des persönlichen Online-Verhaltens und der Diebstahl von Konten. Detaillierte Einführung: 1. Persönliche Identitätsinformationen wie Name, E-Mail-Adresse, Telefonnummer usw. wurden gestohlen. Diese Informationen können von Kriminellen für illegale Aktivitäten wie Identitätsdiebstahl und Betrug verwendet werden. 2. Persönliches Online-Verhalten wird verfolgt und mithilfe von Cookies analysiert werden, können Kriminelle mehr über den Browserverlauf, die Einkaufspräferenzen, Hobbys usw. des Benutzers erfahren. 3. Das Konto wird gestohlen, indem die Anmeldebestätigung umgangen wird und direkt auf das Konto des Benutzers zugegriffen wird.

Wie Cookies funktionieren Wie Cookies funktionieren Sep 20, 2023 pm 05:57 PM

Das Funktionsprinzip von Cookies besteht darin, dass der Server Cookies sendet, der Browser Cookies speichert und der Browser Cookies verarbeitet und speichert. Detaillierte Einführung: 1. Der Server sendet ein Cookie und der Server sendet einen HTTP-Antwortheader mit dem Cookie an den Browser. Dieses Cookie enthält einige Informationen, wie z. B. die Identitätsauthentifizierung des Benutzers, Präferenzen oder den Inhalt des Warenkorbs. Nachdem der Browser dieses Cookie erhalten hat, wird es auf dem Computer des Benutzers gespeichert. 2. Der Browser speichert Cookies usw.

Hat das Löschen von Cookies irgendwelche Auswirkungen? Hat das Löschen von Cookies irgendwelche Auswirkungen? Sep 20, 2023 pm 06:01 PM

Zu den Auswirkungen des Löschens von Cookies gehören das Zurücksetzen von Personalisierungseinstellungen und -präferenzen, die Beeinträchtigung des Werbeerlebnisses sowie die Zerstörung von Anmeldestatus- und Passwortspeicherfunktionen. Detaillierte Einführung: 1. Wenn Cookies gelöscht werden, wird der Warenkorb auf leer zurückgesetzt und Produkte müssen erneut hinzugefügt werden. Das Löschen von Cookies führt auch dazu, dass der Anmeldestatus auf der Social-Media-Plattform verloren geht Geben Sie den Benutzernamen und das Passwort erneut ein. 2. Dies wirkt sich auf das Werbeerlebnis aus. Wenn die Cookies gelöscht werden, kann die Website unsere Interessen und Präferenzen nicht erkennen und zeigt irrelevante Anzeigen usw. an.

See all articles