首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion计划任务-如何保护使用<cflogin>时的安全?

ColdFusion计划任务-如何保护使用<cflogin>时的安全?
EN

Stack Overflow用户
提问于 2009-11-05 00:41:49
回答 4查看 2.1K关注 0票数 1

我有一个用ColdFusion编写的网站,其中包含通常的交互式网页和通过CF调度器运行的一些任务。dir布局是

代码语言:javascript
复制
/
/app
/scheduledTasks

我希望这些任务能够使用在/app内部的application.cfc中创建的所有相同的设置,所以我想将整个/scheduledTasks目录移动到/app中。问题是application.cfc使用cflogin机制和我自己的登录表单。CF调度程序仅允许您为HTTP基本身份验证提供用户名和密码。计划的任务永远不会超过这一点。我如何解决这个问题,或者有没有更好的方法开始?

我想知道如何在我的应用程序.cfc的OnRequestStart中查看一些CGI变量,比如用户代理、远程IP和/或URL参数中的一个魔术值,如果都有,就绕过安全性,因为我“知道”它在另一端是CF的调度程序。这不是很好的安全性,但它可能是可以接受的。

我还想在我的根目录中创建一个新的application.cfc,/app中的application.cfc继承自该根目录。我会将任务放在原来的位置,并在那里放一个新的application.cfc,它继承了根目录中的通用内容。但是,这增加了复杂性,在尝试从/scheduledTasks访问/app/cfcs中的CFCs时,我遇到了一些问题。

有没有人遇到过类似的问题并解决了它?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-05 02:42:09

将计划任务保留在它们自己的文件夹中,就像您当前将其放在站点的根目录之外一样。

在scheduletasks文件夹中创建一个application.cfc,该文件夹扩展应用目录中的一个,如下所示:

代码语言:javascript
复制
<cfcomponent extends="/.apps/application">

重载onrequeststart方法并输入身份验证,如下所示:

代码语言:javascript
复制
<cffunction name="onRequestStart" returntype="void" access="public" output="false">
    <cfargument name="targetPage" type="any" required="true">
    <cfif not structkeyexists(url, "access") or not url.access eq application.ApplicationName>
        <cflocation url="/" addtoken="false">
    </cfif>
</cffunction>

这是非常基本的安全性,但可以完成工作。根据您的喜好进行自定义。

票数 6
EN

Stack Overflow用户

发布于 2009-11-05 06:18:04

即刻,我将为计划的应用程序创建一个自定义角色。然后,在主应用程序中,当请求来自本地服务器时自动应用它。

票数 1
EN

Stack Overflow用户

发布于 2010-01-28 01:21:17

ColdFusion定时任务在CGI信息中传入某些数据,包括:

HTTP_USER_AGENT=CFSCHEDULE

现在HTTP_USER_AGENT是可伪造的,所以下一个问题是确定您需要如何安全地访问该文件夹。您是否只想让CF运行这些任务?或者您也想从外部运行它们?只有你的电脑?等。一旦确定了这一点,你就可以为它编写代码了,而且Rip747的解决方案是一个很好的解决方案,所以我不会再提其他的建议了!;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1675085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档