私のプロジェクトでは、他人が私のスクリプトにajaxリクエストを送信できるようにする必要があります。そのため、外部リクエストは他のWebサイトやドメインから、またはブラウザの拡張機能から送信される場合があります。
スクリプトの先頭に次の2行を追加して、スクリプトを実行できるようにしました。
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
今、私の質問はこれです:ここで私が逃したセキュリティ上の考慮事項はありますか?この簡単な解決策は深刻な問題を引き起こしますか?
もしそうなら、より良い解決策は何ですか?
回答ありがとうございます。
前述のように、誰でもいつでもページにリクエストを送信できます。そのため、ユーザーの入力を検証し、一般消費に利用可能な情報のみを明らかにすることがセキュリティ上の大きな懸念事項です。しかし、それはすべてのスクリプトに適用されます。
(ユーザー入力の検証後)に集中する必要がある2つの主な問題は次のとおりです。
。
<?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).')';
?>
留意すべきその他の要因:
Zerkmsが言ったように、彼らがあなたのphpページに「行く」だけなら、彼らはそれがエコーアウトするものを何でも見ることができるでしょう。 可能な場合(そうでない場合)、それはまた、ローカルホスト上でさえ不要な人々が独自のフォームを作成し、AJAX経由でそれらを送信することを許可します彼らが望んでいる..それがあなたに大丈夫で、情報が曖昧/無害であるならば...そして、私はそれが「安全」だろうと思います。
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: *");
}