ホームページ >バックエンド開発 >PHPチュートリアル >PHPでのなりすましリクエストを防ぐ方法

PHPでのなりすましリクエストを防ぐ方法

小云云
小云云オリジナル
2018-05-19 17:00:582153ブラウズ

この記事では主に、PHP でのシミュレートされたリクエストを防ぐ方法について説明します。お役に立てれば幸いです。

1. 一部の Web サイトでは、この IP アドレスからログインの密度を検出する方法を使用しています。このとき、CURL シミュレーションの送信では、認証コードの画像を分析する必要があります。もちろん、これはログインクラッキングやユーザーデータの漏洩を防ぐためです。

2. もう 1 つの方法は、生成されたランダム コードをセッションに直接保存し、入力の隠しフィールドに置くことです。これは検証コードよりもはるかに悪いです。

3. JavaScript 自体はドメインを越えて送信できないことに注意してください。これはできないからではなく、クリックして Web サイトを開く、iframe を使用して通常の Web ページを開くなど、他人が悪意を持ってユーザー情報を盗むことを防ぐためです。次に、別の iframe スチールでそれを実行します。

Ajax クロスドメイン アクセスを実現するには、

header("Access-Control-Allow-Origin:*"); //跨域权限设置,允许所有

を設定する必要があります。ajax クロスドメイン アクセスを防止するには、

header("Access-Control-Allow-Origin:http://www.test.com"); //只允许test.com跨域提交数据

を設定する必要があります。POST リクエストなどの php シミュレートされたリクエストを防止したい場合は、その後、ajax リクエストを処理できるように設定できます。

//判断是否为ajax请求,防止别人利用curl的post抓取数据
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ }

完全な解決策:

header("Access-Control-Allow-Origin:http://leshen.applinzi.com/cet"); //只允许本站提交数据,前端防ajax跨域,其实js本来就不能跨域 

//判断是否为ajax请求,后端防止别人利用curl的post抓取数据
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ 
    //处理业务逻辑
}else{ 
    echo "we caught you! you have no access!";
};

以上がPHPでのなりすましリクエストを防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。