Hallo,
ich habe ein ASP.Net MVC 5.0 Projekt und möchte das auf eine bestimmte Action eines Controllers nur von einer bestimmten Domain zugegriffen werden kann.
Letztendlich soll ein Javascript auf diversen Webseiten integriert werden können, welches zur Funktion auf mein Backend zugreifen muss.
Hierbei soll natürlich verhindert werden, dass sich jemand das Javascript einfach kopiert und auf einer unauthorisiertenSeite verwendet.
Die Zugriffe sollen nur von authorisierten Domain ermöglicht werden.
Man kann sich das ganze so vorstellen, wie der Code von Google Analytics. Hier kann ich ja ebenfalls den Code und die Analytics Property auslesen. Es bringt jedoch nichts, den Code auf meiner eigenen Seite einzubinden, da nur Zugriffe von der Ausführung auf der ausgewählten Domains getrackt werden.
Wie realisiere ich so etwas?
Gruß
Christoph
Logischerweise geht sowas nicht; das kannst Du auf Server-Seite nicht verhindern, weil Du den Ursprung eines Requests nicht kennen kannst. Der Request erfolgt logischerweise nicht von der Domain, sondern von einem Client.
Ich kann mir nen Script bauen, das Google Analytics direkt anspricht und Google kann das nicht verhindern. Daher funktioniert Google Analytics auch nicht so. Bei GA ist das eine Mischung aus Origin und Google Analytics Id.
Browser wiederum können das; das nennt sich CORS und ist ein Sicherheitsfeature, das per default aktiv ist.
Cross-Origin Resource Sharing (CORS) - HTTP | MDN
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Auch Google Analytics kann das nicht.
Basics:
https://security.stackexchange.com/questions/106892/how-does-google-analytics-prevent-fake-data-attacks-against-an-entitys-traffic
how-does-google-analytics-prevent-traffic-spoofing#2419115
Es ist unmöglich das auf HTTP Ebene zu filtern.
Google hat eher eine Logik, um invalide Requests herauszufiltern - aber halt nicht auf "Controller"-Ebene. So funktioniert halt HTTP leider nicht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code