java - 是否可以使用外部代理工具篡改/修改请求范围变量?

标签 java security coldfusion websecurity

正如我们所知,可以使用外部代理工具修改 URL 和 FORM 范围变量。

例如,如果有人发出这样的请求 - http:\\website\index.cfm?a=1&b=2

通过这种方式,可以将值添加到 .cfm 页面的 URL 范围。

同样,有没有办法在 ColdFusion 中添加/更改请求范围的值,而无需在代码中明确设置。

我问这个是因为我们在一个 CFM 页面中有这样的代码。

<cfset request.uploadFileDir = application.fileDir & "\upload" />
<cffile action="upload" accept="application/pdf" destination="#REQUEST.uploadFileDir#" filefield="brochure" nameconflict="makeunique"/>

安全团队表示上述代码存在漏洞,因为 JAVA 中的 REQUEST 作用域可以被外部代理工具篡改/更改。而且由于 ColdFusion 是基于 JAVA 构建的,因此 ColdFusion 的 REQUEST 也可以被外部代理工具篡改。这是一个正确的假设吗? JAVA 和 ColdFusion REQUEST 范围是否相同?

最后是主要问题 - 是否有任何方法可以对示例中上面提到的页面进行外部请求,修改 REQUEST 范围或更准确地说是 REQUEST.uploadFileDir 变量?

最佳答案

(从评论中推广这一点,以便更容易找到引用。)

他们说 java 请求的哪一部分可以被篡改?使用 jsp/servlet,there seem to be 2 parts of the Request scope :

  • 参数 - request.get/setParameter()

    Java 的请求“参数”更像是 ColdFusion 的 URLFORM 范围,就像你说的,那些可以被客户端或外部工具修改。当他们谈论客户端篡改时,他们可能就是这么想的。

  • 属性 - request.get/setAttribute()

    “属性”是不能在服务器外修改的本地服务器变量。 CF 的“请求”范围更类似于此。它只能在服务器上修改,AFAIK。(显然,它仍然可以是 manipulated indirectly as Dan said)。

如果您好奇,请在您的 DEV 服务器上运行一些测试 using a .jsp and .cfm script查看 java 的“请求”范围与 ColdFusion 的有何不同。

TL;DR;

我认为他们错了。 ColdFusion 的“请求”范围与 Java 的不同。

关于java - 是否可以使用外部代理工具篡改/修改请求范围变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48814517/

相关文章:

java - 仅根据密码生成 AES key

javascript - 使用 cfajaxproxy Ajax 调用 Coldfusion 组件

冷聚变 : terminate CFTHREAD in separate request

rest - 页面刷新后在 ColdFusion 10 中使用 REST 时返回空白页面

java - RxJava Observable 最短执行时间

java - 为具有可编辑列数和行数的 JTable 设置列名称

java - 出于好奇——为什么日志记录 API 不实现类似 printf() 的日志记录方法?

java - 避免 @onetomany join 中不必要的提取

spring - Spring Security授权-管理员被拒绝访问

HTML5 元标记 : if you remove a security meta tag, 浏览器是否相应更新?