ホームページ > バックエンド開発 > PHPチュートリアル > PHP で正規表現を使用して JSONP 形式の入力を検証する方法

PHP で正規表現を使用して JSONP 形式の入力を検証する方法

PHPz
リリース: 2023-06-24 10:56:01
オリジナル
900 人が閲覧しました

Web アプリケーションの継続的な開発に伴い、AJAX (非同期 JavaScript および XML) がますます一般的になってきています。 JSONP (JSON with Padding) は、一般的な AJAX 対話プロトコルです。これにより、さまざまなドメインのサーバーからデータをリクエストできるようになり、JavaScript で一般的に使用されます。

PHP では、別のドメインからの JSONP 形式の入力を検証する必要がある場合、それを正しく解析する必要があります。このプロセスは正規表現を使用して実行できます。この記事では、PHP で正規表現を使用して JSONP 形式の入力を検証する方法を説明します。

JSONP 形式での入力

JSONP 形式を検証する方法について詳しく説明する前に、JSONP 形式での入力について簡単に紹介します。

クライアントが JSONP 形式を使用してデータを取得すると、サーバーにリクエストが送信され、リクエストを受信したサーバーはデータをコールバック関数にラップしてクライアントに送り返します。このようにして、クライアントはコールバック関数を受信したときにデータ処理を実行できます。

たとえば、クライアントがサーバーに JSONP 経由で「client」という名前のユーザー データを取得するようリクエストすると、次のコードのようなリクエストが送信されます。

https://example.com/user.php?callback=client
ログイン後にコピー

サーバーは、リクエストに応じた「client」という名前のユーザー データ コールバック関数名 callback は、ユーザー データを関数呼び出しにラップし、対応する JavaScript コードを返します。例:

client({"name":"Tom","age":18,"gender":"male"});
ログイン後にコピー

コールバック関数名に不正な文字が含まれているか、形式が正しくない場合、データは正しく処理されません。したがって、コールバック関数名はサーバー側で検証する必要があります。

正規表現を使用して JSONP 形式の入力を検証する

以下では、正規表現を使用して JSONP 形式の入力を検証する方法を例を使用して説明します。

最初のステップは、コールバック関数名を取得することです。リクエストされた URL からコールバック値を取得する必要があります。 PHP では、$_GET を通じて URL パラメータを取得できます。

$callback = isset($_GET['callback']) ? $_GET['callback'] : '';
ログイン後にコピー

2 番目のステップは、コールバック関数の名前を確認することです。許可された文字のみが含まれていることを確認する必要があります。 JSONP では、コールバック関数名に使用できるのは英数字とアンダースコアのみです。正規表現を使用して検証できます。

if (preg_match('/^[a-zA-Z0-9_]+$/', $callback)) {
    // 正确格式的回调函数名称
} else {
    // 非法的回调函数名称
}
ログイン後にコピー

上記の正規表現は次のように解釈できます:

  1. Start: ^ は一致する文字列の始まりを示します。
  2. 文字列: [a-zA-Z0-9_] は、大文字、小文字、数字、アンダースコアを少なくとも 1 回一致させることを意味します。
  3. End: $ は、一致する文字列の終わりを示します。

この正規表現は、英数字とアンダースコアを含むコールバック関数名のみに一致し、他の文字は無視されます。コールバック関数名に他の文字が含まれている場合、検証は失敗します。

結論

PHP では、正規表現を使用して JSONP 形式の入力を検証するのは非常に簡単です。必要なのは、コールバック関数名を取得し、正規表現を使用して検証することだけです。これにより、サーバーがリクエストを受信したときに、JSONP 形式の入力の処理に問題が発生しないことが保証されます。

ただし、正規表現ではデータのセキュリティを完全に保証できるわけではないことに注意してください。したがって、入力データを処理するときは、入力長、SQL インジェクション、XSS 攻撃など、他のセキュリティ チェックも実行する必要があります。

以上がPHP で正規表現を使用して JSONP 形式の入力を検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート