【问题标题】:Diplay page directly with php直接用php显示页面
【发布时间】:2010-05-21 21:21:28
【问题描述】:

“不”直接在 php 中显示页面的最佳方法是什么?

编辑

有一个页面= register.php 用户无法直接打开 register.php。只能从 index.php > Register.php 访问 谢谢

【问题讨论】:

  • 抱歉,您能重新提出您的问题吗?也许举一个实际的例子,我不太确定你想要获得什么:)
  • 我也不确定我是否理解。我的意思是,使页面不显示的最简单方法是检查是否存在 var 集,例如 if(isset($_GET['myvar'])){//所有 HTML 和页面的其余部分}
  • 为什么要限制人们浏览您网站的方式?
  • 对于不清楚的问题,我很抱歉。我已经编辑了。
  • 不要把页面放到你的服务器上

标签: php


【解决方案1】:

任何包含敏感数据(例如数据库密码)的 PHP 文件都应存储在文档根目录之外,并在需要时包含在其中。这样一来,如果管理员犯了严重错误,并且 Web 服务器开始发送未解析的 PHP,则该数据将无法访问。

编辑

您编辑了您的问题,现在您似乎希望阻止访问页面而不让它们来自特定页面。你应该能够从这些问题中得到一些想法:

deny direct access to a php file by typing the link in the url

preventing direct access to a php page, only access if redirected

【讨论】:

  • Document root : /UniServer/www 你的意思是我们可以在 WWW 之外插入配置文件吗?感谢您的帮助
  • @Felicita:当然可以。然后只需在需要时使用require 插入它们。 us.php.net/manual/en/function.require.phpus.php.net/manual/en/function.require-once.php
  • 我知道规则和包含函数。但我想知道“应该存储在文档根目录之外” 在 example.com 位于 www 中,我们可以将其插入到 www 之外。我写吗?我已经包含了来自 www (main root) 的 main.php 中的常量。我会改变这个!谢谢
  • 是的。只要您的虚拟主机没有使用 safe_mode/open_basedir 之类的东西来禁止您。
【解决方案2】:

认为你想要这样的东西:

if ( $_SERVER['HTTP_REFERER'] != 'http://YOUR_SITE/index.php' ) {                                                              
   echo "Can't access this page from this referer";                                                                            
   die();                                                                                                                      
}                                                                                                                              

// go on with your register.php code 

【讨论】:

  • 只是补充一下,这很容易被欺骗。但是,它会阻止大多数普通用户(没有恶意动机)。
【解决方案3】:

你可以放

die();

exit();

在 PHP 文档的顶部。但是,您的问题不清楚您希望完成什么。

【讨论】:

    【解决方案4】:

    您可以在 index.php 中启动一个会话,然后在其他页面中检查该会话中的某个变量。

    【讨论】:

      【解决方案5】:

      制作一个文件 index.php

      放在里面

      <?php
      include 'register235235235235.php';
      ?>
      

      制作一个文件 register235235235235.php

      把你想要的东西放在那里

      就保护 php 包括的内容而言,我只保护包含用户名和密码的 database.php 文件。

      【讨论】:

      • 嗯...我不明白这一点。如果用户仍然可以访问 index.php 文件,那么混淆 register.php 文件的名称有什么意义?
      • 因为 register.php 很容易猜到,但是用户看不到隐藏 register235235235235.php 的 php 代码。例如,google.com 可能有一个文件 google.com/thisisasupersecretfile2325a.html,而没有人会知道它的存在。用户永远看不到 里面的内容,除非我错过了一个非常重要的 php 类并且需要重新访问我的所有代码。我想不是阻止文件被查看,它只是很好地隐藏了它。我可能错过了问题的重点。
      • 是的,我明白混淆名称的意义。但是如果你将 register.php 的代码放在包含 include 的 php 文件中,用户无论如何都看不到它。如果用户能够看到文件的内容(例如通过访问服务器),他也会知道 register3242342555.php 文件的名称。
      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      相关资源
      最近更新 更多