我在coldfusion服务器管理员中设置了计划任务 - 每天在特定时间,它会调用服务器上的某个页面。
问题是,我不希望在浏览器中导航到该页面的人意外调用此页面。有没有办法确保CF管理员只能 调用它?
答案 0 :(得分:3)
检查cgi.http_user_agent
- 从cfide或日程安排中调用时,cfschedule
应为servicefactory
。
我不确定是否有任何文件,但这是我们在CF8和CF9下都依赖的东西。它不是{{1}}命令 - 它是ColdFusion调度程序使用的用户代理。 Also see answers to this SO question.
请注意,它可能是欺骗性的 - 任何能够设置自己的用户代理的浏览器或http代理都会通过仅基于此值的测试。还要考虑使用其他测试,如IP地址等。
额外的保护/混淆可能是需要一个特定的url参数(或一系列参数),这些参数可以硬编码到管理员的日程表中,从而减少但不能消除url篡改或意外处理的风险。
答案 1 :(得分:1)
我最好:
a)不要将您的脚本从面向外部的网站公开为所有;
b)为任务设置一个特定的网站,例如tasks.yourdomain.com,它只在本地IP地址上公开。没有任何欺骗或用户代理变幻无常的方式会打败它。设置只需几分钟。