1

ユーザーがJavascriptでPHPURLを直接表示しないようにしたい。例 :

{
$.ajax(
{
    type: "POST",
    url: "search.php",
    data: dataString,
    cache: false,
    success: function(html)
    {
        $("#display").html(html).show();
    }
});
}return false;

ユーザーが私のページのソースを表示するときにphpURLが表示されないようにすることは可能ですか、それとも方法はありますか?ユーザーがphpのURLを直接開こうとする場合があります。

助けてくれてありがとう。

4

3 に答える 3

3

私(または任意のクライアント)は、それを理解するために任意の数のツールを使用できます(構築されたブラウザーの99%に組み込まれているデバッガーを含む)-それを難読化する価値はありません。

直接アクセスが心配な場合は、スクリプトでAJAXリクエストを確認してください。(まだハッキング可能ですが、それは始まりです)。前の回答でも提供されているように:

<?php

  $isAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH'])
         && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest';
  if (!$isAjax) die('Unauthorized access');

  /* rest of search.php */
于 2012-09-20T01:32:05.667 に答える
0

わかりやすくします。

  1. クライアント側(ブラウザ)に配置すると、非表示にすることはできません。ユーザーは引き続き、クライアント側の返品のソースをダウンロードまたは表示できます。
  2. 物事を複雑にし、何も保護しないため、難読化は実際には必要ありません。
  3. ただし、サーバー側のコード(PHP)はサーバー側で処理されるため表示されず、サーバーはサーバー側のコードの実行結果を返すだけです。

問題が発生した場合は、PHPコードに到達したときに$_POSTパラメーターと$_GETパラメーターが有効かどうかを確認して、すべてのPOSTおよびGETリクエストを有効かつ安全にすることができます。ややこんな感じ

<?php
  if(isset($_POST['username']) && isset($_POST['password'])){
    //everything seems fine
    echo 'ok';
  }
  else{
  //someone is doing a direct acess
     header('index.php');
  }
?>

または、セッションをチェックして、ログインしているユーザーに対してのみページを保護します

  <?php
      if(isset($_SESSION['userid'])){
        //everything seems fine
        echo 'ok';
      }
      else{
      //someone is doing a direct acess
         header('index.php');
      }
    ?>
于 2012-09-20T01:38:18.273 に答える
0

コメントで述べたように、

ユーザーがPHPのURLを直接開かないようにするにはどうすればよいですか?

phpで非常に長いランダム文字列(トークン)のセッションを作成し、それをjs ajax関数に渡して、ajaxリクエストとともにトークンを送信する必要があります。サーバー側では、同じトークンが生成されたかどうかを確認できます。トークンをすぐに期限切れにすることをお勧めします。

それが標準的な方法かどうかはわかりませんが、あなたに出発点を提供することができます。

于 2012-09-20T01:43:34.320 に答える