0

こんにちは私はこれをできる限り説明しようと思います。次のようにinclude関数を介してコンテンツをリンクするphpマスターページ構造を使用しています

<?php 
   $page=$_GET['page'];
   include($page);
 ?>

私はデータベースを使用してブログを表示しており、ユーザーがリストで表示する代わりに実際のブログ投稿に移動できるように、各投稿にIDを追加しています。私が抱えている問題は、リンクが機能することですが、マスターページ構造をリンクに追加すると、IDが見つかりません。例えば、

作品

<a href="blog2.php?id=<?php echo $post['post_id']; ?>">

しかし

動作しません

<a href="../anonymous/anonymous.master.php?page=blog2.php?id=<?php echo $post['post_id']; ?>">

明らかに、最初のリンクにはblog2.phpデータのみが表示され、マスターページのデータは表示されません。これがリンクの構造化方法であると推測しています。助けていただければ幸いです。他に質問がある場合、または私が自分自身を説明できない場合は、質問してください。

4

1 に答える 1

1

いくつかのこと。まず、問題を解決するには、2番目のケースのとパラメータの間では&なく、が必要です。したがって、次のようになります。?pageid

<a href="../anonymous/anonymous.master.php?page=blog2.php&id=<?php echo $post['post_id']; ?>">

第二に、あなたは本当にあなたの入力をサニタイズする必要があります。

この場合:

<?php 
   $page=$_GET['page'];
   include($page);
 ?>

サーバーが適切に構成されていない場合、URLを簡単に渡しpageて、サーバーに別のWebサイトから任意のコードを実行させ、システム全体を危険にさらす可能性があります。

URLの場合、投稿変数をページに直接エコーし、クロスサイトスクリプティング(XSS)攻撃にさらされます。

于 2012-12-28T17:43:40.920 に答える