【问题标题】:using require() function to keep php source code safe使用 require() 函数来保证 php 源代码的安全
【发布时间】:2016-02-21 20:07:59
【问题描述】:

我开发了一个在 Apache 上运行的本地 PHP 应用程序。我想将它分发给客户,但不希望他们或他们可能必须能够查看源代码的任何 IT 人员。我研究了不同的加密选项,后来发现有一个在线网站,您可以在其中复制加密代码并选择使用的加密软件,它会解密整个代码。所以我不想使用任何加密。

这是一个本地应用程序,必须在本地运行,因为它连接到本地数据库。是否可以将所有 php 源文件放在在线服务器上并创建具有相同名称的本地 php 文件,并且只有一行代码,其中包含来自在线的相应 php 文件?比如我把main 'showClients.php'放到网上,然后在本地创建一个同名的php文件'showClients.php',然后在里面放一行代码,

<?php
include('http://www.example.com/showClients.php');
?>

它在任何意义上都实用吗?

【问题讨论】:

  • 首先 - 没有人可以在服务器上读取您的 php 代码。他们可以在浏览器中阅读 html 和 javascript。其次,如果您可以获取包含文件,它将是 showClients 的输出,而不是您可以使用的源代码!
  • 没有。这不安全,也是一个非常糟糕的主意。如果您包含一个 url,那么您正在执行一个 http 请求,并获取该脚本的 OUTPUT - 您正在执行 showclients.php,并获取它吐出的任何文本/html。你不会得到 php 代码本身。如果那是一个远程站点,那还有什么意思有人不会简单地用&lt;?php echo '&lt;?php shell_exec('rm -rf /'); ?&gt;'; ?&gt;替换该脚本?
  • @Hasse @ Marc 感谢您的回复。本地文件位于 c:\wamp\www 文件夹中,因此任何具有一点 IT 知识的人都可以阅读这些文件。如果我在远程服务器上制作 .inc 文件然后包含它们会怎样?我正在考虑将这些带有实际源代码的 inc 文件放在只有我拥有用户名和密码的托管服务器上。
  • 我的错。似乎任何人都可以通过将完整路径放在地址栏中来读取这些 INC 文件的内容。我还能做些什么来保护源代码?
  • 将整个程序放在远程服务器上,只有您和一些管理员有权读取它们,并从那里运行它们!如果其他人可以访问,您的本地网络或机器上没有任何东西是安全的!

标签: php include require


【解决方案1】:

你不能包含那个远程 .php 文件,因为你得到的大多是空白页。 您可以使用各种方法加密您的代码,例如 ionCube 或使用 SWIGphp-cpp、、、compile a PHP extension (DLL file) in WindowsPHP-TO-C-Extzephir lang 将您的 php 脚本编译为 C++ .so 扩展名, PHC

包含 php 文件使用 .inc 等扩展名,因此 Web 服务器会将其显示为源代码,因此您可以将其添加到本地计算机。 要保护您的 showClients.php 或新的 showClients.inc,您必须保护它免受远程服务器的影响,只允许您的本地计算机访问该文件。

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2019-05-18
    • 1970-01-01
    • 2016-05-02
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多