说,我有我所有的PHP函数domain.com/php/,然后我跟前端开发者domain.com/frontend/共享FTP帐户,现在前端能做他们的工作,并调用“../php/”功能。这是安全的假设我的PHP代码受到保护?或者另一种方式问,是否有他们看到PHP源代码或以某种方式复制/包含这些文件,然后显示它们?隐藏后端代码
Q
隐藏后端代码
-1
A
回答
0
您可以通过他们关押到一个文件夹限制用户:
http://allanfeid.com/content/creating-chroot-jail-ssh-access
这样,他们将有机会获得该文件夹中创建的文件。然后简单地给他们PHP文件所需的路径。或创建一个对象或PHP函数模板,让他们呼叫接入
伪代码:
class GlobalPaths
function getPathToThisResource(return string)
0
您可以使用UNIX帐户系统,使不可读某些用户的文件。问题是,如果PHP文件可以包含对方,他们可以读取其他来源。您可以使用RPC系统来隐藏后端代码。前端只会与RPC接口通信,并且不需要读取后端代码的来源。
例如,在前端:
<?php
error_reporting(-1);
function ask_backend($cmd, $args) {
$decoded = json_decode($data = file_get_contents("http://localhost:8800/backend/rpc.php?cmd=" . urlencode($cmd) . "&args=" . urlencode(json_encode($args))),true);
if ($decoded === null) throw new Exception("invalid data from backend: " . $data);
if ($decoded["status"] !== "ok") throw new Exception("error occurred on backend: " . $data);
return $decoded["msg"];
}
?>
The backend says:
<?php
$res = ask_backend("greeter", ["peter"]);
var_dump($res);
?>
在后台,你可以有rpc.php
如下:
<?php
error_reporting(-1);
$cmd = $_GET["cmd"];
$gargs = json_decode($_GET["args"],true);
$cmds = [
"greeter" => function($args) {
list($name) = $args;
return "hello " . $name;
}
];
$res = ($cmds[$cmd]($gargs));
$res = json_encode(["status"=>"ok", "msg"=>$res]);
echo $res;
?>
这个实现的缺点是,你只能通过JSON序列化对象。当然,您可以使用Protocol Buffers进行序列化。你甚至不需要使用HTTP,但是我使用过,因为如果你正在运行PHP,你可能已经有了一个HTTP服务器。
请记住,RPC接口只需要提供给本地主机!最重要的是对于你的用例:前端开发者不需要读取源代码。由于它不是公开访问的,因此可以考虑在后端使用诸如PHPDaemon之类的东西,因为这样可以更轻松地构建适当的REST界面。
相关问题
- 1. 代码隐藏
- 2. ASP和代码隐藏端的EntityDataSource?
- 3. 代码隐藏代码
- 4. jquery jqgrid隐藏colums后面的代码
- 5. 隐藏代码背后的div元素
- 6. window.print然后从代码隐藏的C#
- 7. 隐藏字段值在代码后面
- 8. 从代码后面隐藏ASPxPopupControl
- 9. 隐藏字段在代码背后
- 10. 在代码隐藏
- 11. XAML代码隐藏
- 12. 隐藏在代码
- 13. 隐藏源代码
- 14. 隐藏java代码
- 15. 隐藏Python代码
- 16. 从代码隐藏
- 17. WPF代码隐藏
- 18. 从代码隐藏
- 19. 从代码隐藏
- 20. 在代码隐藏
- 21. 从代码隐藏
- 22. Xamarin代码隐藏
- 23. 表代码隐藏
- 24. 从代码隐藏
- 25. 在代码隐藏
- 26. 从代码隐藏
- 27. 在代码隐藏
- 28. 从代码隐藏
- 29. 隐藏代码隐藏列表
- 30. PHP - 隐藏代码隐藏div div
如果他们可以使用这些功能,当你给予某人ftp访问权限时,即使你将其限制在某个目录下,也总是有办法获得源代码 – Stefan
- 他们仍然可能执行脚本或程序来执行许多操作你的系统。其中一件事是读取文件。有一些方法可以限制他们的能力,但这很复杂,除非你对这个领域非常熟悉,否则你应该认为他们可以做大部分相同的事情。 – goat
...与前端开发人员共享* FTP *帐户?我认为你需要修改你的协作模型。开发人员工作代码并将其提交到某个存储库(git,svn,您将其命名)。什么时候准备好了,一个人部署它。应该有你的工作场所一定程度的信任,即使你限制FTP,开发商仍然可以使用像'ReadFile的(“../ PHP /有些难看码 - 我想做至hide.php”);' – Lekensteyn