Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使PHP脚本依赖于域_Php_Security_Encryption - Fatal编程技术网

是否可以使PHP脚本依赖于域

是否可以使PHP脚本依赖于域,php,security,encryption,Php,Security,Encryption,有没有可能使PHP脚本依赖于域,而不使用Zend guard或其他第三方工具,这样,如果它试图在任何其他域上执行,它将被破坏。给你: if ($_SERVER['HTTP_HOST'] == 'www.domain.com') { ... } 您可以测试HTTP\u HOST以确定是否执行PHP,例如: $allowed_hosts = array('foo.example.com', 'bar.example.com'); if (!isset($_SERVER['HTTP_HOST'])

有没有可能使PHP脚本依赖于域,而不使用Zend guard或其他第三方工具,这样,如果它试图在任何其他域上执行,它将被破坏。

给你:

if ($_SERVER['HTTP_HOST'] == 'www.domain.com') {
 ...
}

您可以测试
HTTP\u HOST
以确定是否执行PHP,例如:

$allowed_hosts = array('foo.example.com', 'bar.example.com');
if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {
    header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request');
    exit;
}
else{ 
   // PHP here
}

在本例中,PHP在服务器端执行,因此运行代码的用户看不到。只有能够访问服务器上的.php文件的人才能读取该文件。

如果有人将您的脚本放在另一台服务器上,那么他们很可能知道如何删除其中防止在其他服务器上执行的任何部分。@apokryfos No not replicate的可能重复,我不想使用Zend Guard或第三方编码。我怀疑这在没有任何第三方干预的情况下是可能的。您基本上是在尝试绕过普通的PHP解释器,而选择解密然后执行代码的东西。我认为在编译之前需要一个处理程序。在这种情况下,如果有人检查脚本,可以绕过条件。我必须确保没有人能看到它是如何工作的。PHP在服务器端运行,有人需要访问服务器才能读取file@PhilipThomson我认为他们想销售/分发用PHP编写的软件,而不是让人们能够阅读源代码。@apokryfos在这种情况下,两种选择:最好将软件保持私有,并在自己的服务器上为用户设置实例。或者将的核心部分和依赖项远离已分发给的用户。见关于DRM的文章。