【问题标题】:PHP master page architcture link not displaying correctlyPHP 母版页架构链接未正确显示
【发布时间】:2012-12-28 17:23:25
【问题描述】:

您好,我会尽力解释这一点。我正在使用 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 数据而不是母版页数据。我猜这是我构建链接的方式,任何帮助将不胜感激。如果还有其他问题或我没有解释自己,请提问。

【问题讨论】:

  • 您应该在使用include 之前验证参数值。否则可以包含任何文件。

标签: php master-pages href


【解决方案1】:

有几件事。首先,要解决您的问题,在第二种情况下,您需要在pageid 参数之间使用&amp; 而不是?。所以它应该是这样的:

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

其次,你真的需要清理你的输入。

在这种情况下:

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

如果您的服务器未正确配置,我可以轻松传递page 的 URL 并让您的服务器执行来自另一个网站的任意代码,从而危及您的整个系统。

在 URL 的情况下,您将帖子变量直接回显到页面,从而使自己容易受到跨站点脚本 (XSS) 攻击。

【讨论】:

  • 谢谢迈克。这在现在看来是如此明显。我会坚决地研究对代码进行排序,感谢您的提醒。
猜你喜欢
  • 1970-01-01
  • 2011-11-11
  • 2013-04-19
  • 1970-01-01
  • 2014-02-20
  • 2014-07-04
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
相关资源
最近更新 更多