这是八篇文章中的第四篇,详细介绍了部署到ZendServer的技巧。该系列的上一篇文章详细介绍了我在部署期间了解何时执行chmod语句的技巧。
今天,我要分享一个关于保护作业队列作业脚本的技巧。
技巧4:保护您的作业脚本
在第二个技巧中,我详细说明了何时注册作业脚本,但没有详细说明如何编写它们。事实证明,编写工作脚本时需要考虑一个非常重要的方面:安全性。
JobQueue的一个问题是作业是通过网络触发的。这意味着它们通过网络公开,这使它们成为潜在的攻击媒介。但是,有一个简单的技巧可以防止除作业队列之外的访问;将其添加到您的作业脚本的顶部:
if (! ZendJobQueue::getCurrentJobId()) { header('HTTP/1.1 403 Forbidden'); exit(1); }
虽然作业是通过HTTP调用的,但ZendServer有办法跟踪它们是否在作业队列的上下文中执行,以及为哪个作业执行。如果ZendJobQueue::getCurrentJobId()
返回一个假值,那么它不是通过作业队列调用的,你可以立即退出。我也喜欢在这些情况下设置403状态,但这只是个人喜好。
下次……
本系列的下一个技巧是建立在这个技巧的基础上的,并提供了一些编写作业脚本时要遵循的最佳实践。
系列其他文章
- 技巧1:zf-deploy
- 技巧2:重复作业
- 技巧3:chmod
- 技巧5:设置作业状态
- 技巧6:页面缓存
- 技巧7:zs-client
- 技巧8:自动化