0

ウェブサイトの cms アプリケーションを非表示にしようとしています...

したがって、ランダムな文字列への GET 参照を含む、私のサイトのランダムなページに少しの php を追加すると思いました...基本的に、x ページに移動して ?RANDOMSTRING を追加すると、cms インデックスが含まれます。これは Web ルートの上に保存されます... これが php の一部です:

if (isset($_GET['J7sd-H3sc9-As3R']))
{
require_once($docRoot . '/../../includes/admin/index.php');
}

基本的に、index.php は 3 つのフィールドセットを持つページとしてレイアウトされます。3 つのフィールド セットには、さまざまなタスクを処理するさまざまなアプリケーションに関連するさまざまなリンクがあります。これらは、上記のコードと同じ方法でアクセスされました。そして、それらは Web ルートに保持され、http 経由でアクセスできました...

それはすべて完全にうまくいきましたが、cmsの特定の部分にアクセスしようとすると問題が発生します...どうなるでしょうか:

http://www.mysite.com/admin/part/

今でしょ:

include($_SERVER['DOCUMENT_ROOT'] . '/../../includes/admin/part/index.php');

というか、その類...

だから今、私が自分のページに行くと

http://www.mysite.com/randomDirectory/

そして追加:

http://www.mysite.com/randomDirectory/?J7sd-H3sc9-As3R

cmsに送信されます...かっこいい...しかし、セクションをクリックしようとすると、次のヘッダーが表示されます。

http://www.mysite.com/randomDirectory/?part

ページは次のように更新されます。

http://www.mysite.com/randomDirectory/

それが理にかなっているなら...

私が達成しようとしているタスクに関する情報や提案を提供してもらえますか? 最初から始めることができるかどうかはわかりませんが、十分に単純に思えます。

どんな返信でも大歓迎です、ありがとう!

4

1 に答える 1

1

ページ内のすべてのリンクの最後に次のようなものを追加する必要があると思います

<?php if (isset($_GET['J7sd-H3sc9-As3R'])) echo '?J7sd-H3sc9-As3R'; ?>

例:

http://www.mysite.com/randomDirectory/randomPage<?php if (isset($_GET['J7sd-H3sc9-As3R'])) echo '?J7sd-H3sc9-As3R'; ?>

編集

これを行う簡単な方法は、次のようにセッションを使用することです。

<?php

session_start();

if (isset($_GET['J7sd-H3sc9-As3R']))
{
    $_SESSION['token'] = 'J7sd-H3sc9-As3R';
}

if (!isset($_SESSION['token']) || $_SESSION['token'] !== 'J7sd-H3sc9-As3R')
{
    exit;
}

// go on with your page

?>

このように、URL にトークンを含むページを開くと、セッションが開始され、トークンがセッションに保存されるため、ブラウザーを閉じるまで、すべての URL にトークンを挿入する必要なく動作するはずです。

于 2012-01-23T01:01:04.187 に答える