Heim >Backend-Entwicklung >PHP-Tutorial >javascript - PHP cURL oder ähnliche Client-Anfragen gelten nicht als domänenübergreifend. Sind sie unsicher? Welche Vorsichtsmaßnahmen gibt es?
Ich dachte
PHP cURL
, dass Simulationsanfragen auch domänenübergreifende Einschränkungen haben würden.
Bei der Gestaltung der Benutzeroberfläche werden zuvor vertrauliche Daten berücksichtigt, für deren Zugriff eine Genehmigung erforderlich ist (z. B. personenbezogene Daten, die nach dem Anmelden angezeigt werden müssen). Ich werde einen token
Test machen.
Andere normale Schnittstellen können jedoch direkt abgerufen werden, es werden jedoch domänenübergreifende Header hinzugefügt, um domänenübergreifende Aufrufe zu verhindern. Später wurde jedoch festgestellt, dass der Aufruf über PHP cURL
erfolgreich sein könnte. Ich habe die Antwort von eechen
später gelesen. Wie folgt:
Die Same-Origin-Richtlinie zur Verhinderung von Cross-Domain ist ein Sicherheitsmechanismus im Browser. Die cURL von PHP kann ohne Einschränkungen als Browser (Client) unter der Befehlszeile betrachtet werden, genau wie Sie file_get_contents zum Herunterladen verwenden Die Dinge im Internet sind so willkürlich wie sie nur sein können, Quelle.
Finden Sie dieses Design etwas unangemessen? JS Ajax
Es gibt domänenübergreifende Einschränkungen. PHP cURL
In dieser Form gibt es keine domänenübergreifenden Einschränkungen. Warum wurde bei der Festlegung domänenübergreifender Beschränkungen nicht auch die Form PHP cURL
als domänenübergreifende Einschränkung verwendet?
Wie kann man domänenübergreifende Aufrufe in dieser Form verhindern?
Als ich zuvor einen NetEase Cloud-Client erstellen wollte, hatte ich die Schnittstelle von 网易云音乐
gesehen, die CSRF_TOKEN
verwendet, um domänenübergreifende Aufrufe zu verhindern.
PS: Apropos Lösung: Es scheint, dass Sie CSRF_TOKEN
erhalten können, indem Sie die Webseite crawlen und dann domänenübergreifende Aufrufe tätigen, oder?
Gibt es außerdem Lösungen zur Lösung dieses Problems?
============ 10-27 15:51 ==============
Entschuldigung, ich habe es falsch verstanden... Ich dachte, PHP cURL
hätte eine spezielle Verarbeitung durchgeführt. Vielen Dank 南小鸟
für Ihre Antwort. Es entspricht tatsächlich dem direkten Zugriff auf das angegebene URL
, und natürlich wird es keine domänenübergreifenden Probleme geben...
Was ist, wenn ich hoffe, dass die Außenwelt nicht auf meine Schnittstelle zugreifen kann?
Hierfür sollte keine Notwendigkeit bestehen, etwas einzurichten.
EinstellungenCSRF_TOKEN
, aber ich habe einige CSRF_TOKEN-Informationen überprüft, es scheint, dass CSRF_TOKEN
hauptsächlich dazu dient, 跨站请求伪造
zu verhindern, nicht dafür... um zu verhindern, dass Ihre Autorisierungsinformationen übertragen werdencookie:SESSIONID
Führen Sie eine aus Angriff.
Überprüfen REFER
.
Gibt es eine andere Möglichkeit?
Derzeit plane ich, JWT
zum Generieren von Token
zu verwenden. Jede Anfrage muss Token
mitbringen (Benutzerinformationen, Berechtigungskontrolle usw.).
Es kommt mir vor, als hätte ich ein Loch hinterlassen, sorry. Danke auch Gforce
für deine Antwort.
Ich dachte
PHP cURL
, dass Simulationsanfragen auch domänenübergreifende Einschränkungen haben würden.
Bei der Gestaltung der Benutzeroberfläche werden zuvor vertrauliche Daten berücksichtigt, für deren Zugriff eine Genehmigung erforderlich ist (z. B. personenbezogene Daten, die nach dem Anmelden angezeigt werden müssen). Ich werde einen token
Test machen.
Andere normale Schnittstellen können jedoch direkt abgerufen werden, es werden jedoch domänenübergreifende Header hinzugefügt, um domänenübergreifende Aufrufe zu verhindern. Später wurde jedoch festgestellt, dass der Aufruf über PHP cURL
erfolgreich sein könnte. Ich habe die Antwort von eechen
später gelesen. Wie folgt:
Die Same-Origin-Richtlinie zur Verhinderung von Cross-Domain ist ein Sicherheitsmechanismus im Browser. Die cURL von PHP kann ohne Einschränkungen als Browser (Client) unter der Befehlszeile betrachtet werden, genau wie Sie file_get_contents zum Herunterladen verwenden Die Dinge im Internet sind so willkürlich wie sie nur sein können, Quelle.
Finden Sie dieses Design etwas unangemessen? JS Ajax
Es gibt domänenübergreifende Einschränkungen. PHP cURL
In dieser Form gibt es keine domänenübergreifenden Einschränkungen. Warum wurde bei der Festlegung domänenübergreifender Beschränkungen nicht auch die Form PHP cURL
als domänenübergreifende Einschränkung verwendet?
Wie kann man domänenübergreifende Aufrufe in dieser Form verhindern?
Als ich zuvor einen NetEase Cloud-Client erstellen wollte, hatte ich die Schnittstelle von 网易云音乐
gesehen, die CSRF_TOKEN
verwendet, um domänenübergreifende Aufrufe zu verhindern.
PS: Apropos Lösung: Es scheint, dass Sie CSRF_TOKEN
erhalten können, indem Sie die Webseite crawlen und dann domänenübergreifende Aufrufe tätigen, oder?
Gibt es außerdem Lösungen zur Lösung dieses Problems?
============ 10-27 15:51 ==============
Entschuldigung, ich habe es falsch verstanden... Ich dachte, PHP cURL
hätte eine spezielle Verarbeitung durchgeführt. Vielen Dank 南小鸟
für Ihre Antwort. Es entspricht tatsächlich dem direkten Zugriff auf das angegebene URL
, und natürlich wird es keine domänenübergreifenden Probleme geben...
Was ist, wenn ich hoffe, dass die Außenwelt nicht auf meine Schnittstelle zugreifen kann?
Dafür sollten keine Einstellungen erforderlich sein.
EinstellungenCSRF_TOKEN
, aber ich habe einige CSRF_TOKEN-Informationen überprüft, es scheint, dass CSRF_TOKEN
hauptsächlich dazu dient, 跨站请求伪造
zu verhindern, nicht dafür... um zu verhindern, dass Ihre Autorisierungsinformationen übertragen werdencookie:SESSIONID
Führen Sie eine aus Angriff.
ÜberprüfenREFER
.
Gibt es eine andere Möglichkeit?
Derzeit plane ich, JWT
zum Generieren von Token
zu verwenden. Jede Anfrage muss Token
mitbringen (Benutzerinformationen, Berechtigungskontrolle usw.).
Es kommt mir vor, als hätte ich ein Loch hinterlassen, sorry. Vielen Dank auch Gforce
für deine Antwort.
PHP Curl entspricht dem Öffnen einer URL direkt mit Ihrem Browser, was natürlich nicht als domänenübergreifend gilt
Sie können eine Schnittstellenüberprüfung durchführen, beispielsweise mit JWT