为了开始处理批处理命令,我需要从我所在的页面调用一个不同的脚本,但我需要确保没有其他人调用。
让我解释一下。
我需要联系我的信用卡清算公司来发布一批交易。由于特定的用户请求,这些事务只能被删除。
如果错误地指挥权被其他人夺走,那将是一场彻底的灾难。
我想把我需要调用的脚本放在网站范围之外,例如一个与"includes"文件夹相邻的文件夹,并用一个参数来调用它,比如:
"php ../../batch.php?id=5&process=all"
但问题是,在batch.php中,我无法验证该命令是否由任何人发出。我的意思是,当我处理自己的页面时,我总是检查用户是否使用SESSION变量登录。但通过执行脚本,我相信这不能像系统调用自己那样完成,或者可以吗?
有没有办法判断用户是否是执行脚本的确认用户?
你会怎么做?谢谢
如果错误地指挥权被其他人夺走,那将是一场彻底的灾难。
当然。但是你觉得呢?!
$ php ../../batch.php?id=5&process=all
这只是通过shell调用一个命令(php
)。在POSIX系统下,总是有一个用户在调用该命令。请参阅您的系统手册以了解有关用户的信息。用户总是在shell环境中通过身份验证。这就是它的作用(至少在一定程度上)。
因此,问题可能不在于身份验证,而在于如何调用脚本。由于你在问题中没有提供太多关于这件事发生的具体情况的信息,所以无法回答(更具体地说,是关于已经在写的东西)。
如果你真的想确保只在非常特定的情况下调用特定的脚本,那么只在系统上为该情况创建一个用户,不要共享密码短语,那么只有这个用户才能调用该命令。用它创建一个shell脚本(shebang PHP),并使该文件仅对该用户可用。
你能把它包括在页面中吗?编辑它以接受额外的参数-username/userid/等。如果你不能编辑它,有一个包装脚本来进行检查并将其称为
最终,您应该使调用脚本足够健壮-SRP