1

Web サイト ベースのプロキシをブロックしようとしています。これらは通常次の形式です: http://3.hidemyass.com/ip-8/encoded/Oi8vZ29kbGV5ZGVzaWduLmNvLnVrL0xDcmVkaXJlY3QvZnVuY3Rpb25zL2Z1bmN0aW9

これらをブロックする私の理論は、アドレス バーの URL を取得し、それが Web サイト プロキシ経由ではなく、実際に自分のサイトへの直接アクセスであることを確認することです。

ただし、自分のサイトにアクセスしてユーザーの URL をキャプチャしようとすると、この Web ベースのプロキシではなく、自分のサイトの URL であると報告されます。

私はそれを検出する次の方法を試しました:

$url= $_SERVER['HTTP_HOST']; //get the url
$url = $_SERVER["SERVER_NAME"];

これを解決する方法についてのアイデアはありますか?

更新 OK、これの一部を書き直しましたが、常に false を返しているようです...関数内でこれをエコーできるため、$url は正しく渡されます。ただし、一致してfalseを返しているようには見えません

<script>
var url = window.location.href;
<?php $url = "<script>document.write(url)</script>"; ?> 
</script>

<?php
//
function checkURLIsSafe($url){
    if(preg_match('/www/',$url)){
        echo 'true';
    } else {
        echo 'false';
    }
}
checkURLIsSafe($url);
?>
4

2 に答える 2

1

PHPはサーバー上で実行されます。要求された URL のみを表示できます。

hidemyass.comサーバーから通常の URL を要求します。ブラウザがリクエストした URL を特定する方法はありませんhidemyass.com

あなたが取ることができるアプローチは次のとおりです。

  • 既知のプロキシのリストに対して送信元 IP を確認する
  • クライアント側の JavaScript を使用して読み取るlocation.href
于 2013-06-25T13:54:51.763 に答える
1

PHPだけではできません。できることは、window.location.href を javascript で確認し、正しくない場合は、IP アドレスをブロックする ajax リクエストをサーバーに送信することです。

于 2013-06-25T13:58:13.323 に答える