In meinem Projekt muss ich zulassen, dass andere Ajax-Anforderungen an mein Skript senden. Externe Anfragen können daher von anderen Websites und Domänen und möglicherweise von Browsererweiterungen stammen.
Ich habe einfach diese beiden Zeilen oben in mein Skript eingefügt, damit sie es tun können:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
Jetzt ist meine Frage: Ist hier eine Sicherheitsüberlegung, die ich übersehen habe? Macht diese einfache Lösung ernsthafte Probleme?
Wenn ja, was ist die bessere Lösung?
Danke für die Antwort.
Wie oben erwähnt, kann jeder jederzeit eine Anfrage an Ihre Seite senden. Die wichtigsten Sicherheitsbedenken, die Sie benötigen, sind die Überprüfung der Benutzereingaben und das Aufdecken von Informationen, die nur für den öffentlichen Gebrauch verfügbar sind. Das gilt aber für alle Skripte.
Die zwei Hauptprobleme, auf die Sie sich nach der Überprüfung der Benutzereingaben konzentrieren müssen, sind:
.
<?php
header('content-type: application/json; charset=utf-8');
$data = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
echo $_GET['callback'] . '('.json_encode($data).')';
?>
Andere Faktoren zu berücksichtigen:
Wie zerkms sagte, wenn sie einfach zu Ihrer PHP-Seite "gehen", werden sie in der Lage sein zu sehen, was auch immer sie raushängt. Wenn es möglich ist (Nicht sicher, ob das der Fall ist), wird es auch unerwünschten Personen ermöglichen, ihre eigenen Formulare selbst auf einem localhost zu erstellen und sie mit AJAX einzureichen, um die gewünschten Antworten zu erhalten. Wenn dies in Ordnung ist Sie und die Informationen sind mehrdeutig/harmlos ... Dann würde ich vermuten, dass es "sicher" wäre. Es ist KEINE Methode, sensible Informationen abzurufen/zu übertragen
private function set_headers() {
header("HTTP/1.1 ".$this->_code." ".$this->get_status_message());
header("Content-Type:".$this->_content_type);
header("Access-Control-Allow-Origin: *");
}