在php中阻止highlight_file函数

时间:2013-06-13 12:59:09

标签: php security include

我在同一个网络服务器上安装了很多网站。我想做的是能够包含来自不同网站的同一文件

<?php include '/home/site/www/path/to/file.php'; ?>

并同时阻止highlight_file和file等函数,因此使用以下代码将不会显示我的文件内容

<?php echo hightlight_file('/home/site/www/path/to/file.php'); ?>

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果您希望PHP文件可以运行但是不被安全阅读,那么您最好选择对它们进行编码。

看看IonCube PHP EncoderSendGuard,它们都是保护源代码的非常受欢迎的选项。

阻止PHP功能可以工作,但你永远不会安全,因为你可以忘记功能(你可以重新列出所有功能吗?如果有你真正需要的功能怎么办?),或者将来可以添加新功能,如果你不会阻止他们暴露你。

答案 1 :(得分:0)

  

...所以使用以下代码不会显示我的文件内容

这是否意味着您希望允许其他人在调用您的代码的服务器上部署代码而不泄露PHP源代码?如果是这样,那么禁用highlight_file不会有太大帮助。您还需要禁用include,require,fopen,file_get_contents,imap扩展和其他一些东西 - 这意味着它们根本无法访问您的代码。

如果您让其他不一定信任的人在您的服务器上部署代码,那么您需要做很多事情来隔离每个帐户 - 这不是一个简单的练习,而且远远超出了答案的范围这里。但是,如果不提供对源代码的访问权限,则无法允许访问共享包含文件。使用编码的PHP解决了一些问题但引入了其他问题。更好的解决方案是通过Web或套接字API公开功能(这解决了共享问题,但不解决隔离问题)。