Heim >Backend-Entwicklung >PHP-Tutorial >Wie löst man domänenübergreifende Probleme bei der Trennung von Front-End und Back-End?

Wie löst man domänenübergreifende Probleme bei der Trennung von Front-End und Back-End?

WBOY
WBOYOriginal
2016-09-23 03:30:081259Durchsuche

Wenn ich derzeit an meinem Blog arbeite, denke ich darüber nach, Front-End und Back-End zu trennen, die Front-End- und Back-End-Logik in zwei separaten Repositorys zu platzieren und sie auf zwei Servern bereitzustellen.

Mein Hauptdomainname ist: godtail.cn (Derzeit verwende ich ghost, ein neuer Blog wird geschrieben...)

  • Der Front-End-Domainname lautet: www.godtail.cn | godtail.cnm.godtail.cnDer Backend-Domainname lautet:

  • api.godtail.cnAber bei der Kommunikation stellte ich fest, dass es zu

    kam. Ich dachte, dass es nicht domänenübergreifend sein würde, wenn der Hauptdomänenname derselbe wäre (derselbe Domänenname und unterschiedliche Ports würden auch domänenübergreifend sein).
Derzeit kenne ich zwei Möglichkeiten, das Problem zu lösen:

跨域

Um ehrlich zu sein, verwende ich JSONP nicht besonders gerne. Ich habe das Gefühl, dass es Sicherheitsprobleme verursacht oder die Effizienz verringert (diese beiden Punkte sind nur meine Vermutungen).

    Gründe für Spekulationen:

  1. Es kann von jeder Quelle aus zugegriffen werden. Gibt es eine JS-Injection?

    • Sowohl das Backend als auch das Frontend benötigen JSONP zur Verarbeitung. (Es ist nicht angenehm zu schreiben und alle Anfragen müssen JSONP verwenden.)

    • Fügen Sie einen domänenübergreifenden Header im Backend hinzu
  2. Wenn es viele Front-End-Domänennamen gibt, müssen viele Domänennamen hinzugefügt und verwaltet werden. Wenn andere Systeme Ihre Schnittstelle anfordern müssen, fügen Sie einen domänenübergreifenden Header hinzu? Nicht einfach damit umzugehen...

    • Hat jemand eine bessere Lösung?
  3. ================【9-22 17:25】======================

Wenn Sie den domänenübergreifenden Header festlegen, können Sie außerdem die IP festlegen, die nur für interne Anrufe gilt. Wenn externe Aufrufe erforderlich sind, ist dies nicht der Fall. Außerdem bin ich mir nicht sicher, ob es Kompatibilitätsprobleme mit älteren Browserversionen gibt.

Stellungnahme:
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