这主要是好奇心。我可以实现它,不确定。
我有这个想法...不是将脚本留在服务器上,一旦黑客得到它,我可以从辅助站点将完整脚本发送到服务器,运行它,然后将其删除。好在理论上......
“发送”服务器上的LWP :: UserAgent需要连接到“接收”服务器上的脚本。我目前的方式是使用open filehandle等将传入的param保存到文件中,然后运行脚本“require”,然后取消链接以销毁文件。
$d=param('d');open (D, ">sc.pl");print D $d;close(D);require "sc.pl";unlink "sc.pl";
但是黑客可以在大多数条目之间放置一个合适的“打印”,并查看正在发送的数据。
所以我想知道是否可以在不将代码写入文件的情况下实现类似的事情,即在内存中执行。它可能与“while(<>){”或从STDIN到???的管道有关
只是一个想法
答案 0 :(得分:4)
这里的目标似乎不是保护服务器,而是保护您的源代码不被窃取。这是第一个有缺陷的前提: 黑客需要您的数据,而不是您的代码 。黑客很少关心你的源代码,除了找到安全漏洞(如果他们控制你的服务器,他们已经找到了)。他们没有窃取您的工业间谍代码,他们希望您的数据出售或持有赎金。信用卡。客户信息。密码。加密密钥。任何一个。
其次,如果这个理论黑客可以改变服务器代码来添加print
语句,那么从内存或STDIN执行程序将无济于事。如果他们控制服务器代码,无论服务器从何处读取,他们都可以打印任何他们想要的内容。 如果他们可以编辑代码,他们可以替换整个服务器程序 。
这个想法不是首发。你需要重新考虑你的前提。