coldfusion - 在application.cfm中使用urlencode检测url中的XSS ColdFusion

标签 coldfusion xss urlencode application.cfm

我继承了一些遗留的 ColdFusion 代码,大约一年前,我的网站受到了 XSS 和 SQL 注入(inject)的攻击。<​​/p>

这使我验证传入的输入,并在我的 application.cfm 文件中包含 ScriptProtect="all"设置。我扫描了它,结果很干净。

最近我再次对其进行了扫描,发现了许多漏洞,特别是在 URL 中嵌入了脚本的漏洞。

例如,这被附加到一个网址:

?’A<style > a(font0family:expression(alert(2424)))</style>

其中嵌入了隐藏的 JavaScript。如何在 application.cfm 文件中使用 ColdFusion 函数(例如 URLencode())来检测/防止此类 XSS 攻击?

最佳答案

根据攻击的性质和应用程序的类型,您可以执行一些具体操作。以下是我认为的“三大”。第一项是在Coldfusion管理员的“设置”区域中启用“启用全局脚本保护”。

第二个,这对于 SQL 注入(inject)非常重要,是使用 并严格键入查询中使用的任何变量。例如:

<cfqueryparam cfsqltype="cf_sql_integer" value="#my_integer#">

在基于脚本的查询中,这可以通过以下方式完成:

<cfscript>
qget = new query(datasource=my_datasource);
qget.addParam(name='my_integer',value=url.my_id,cfsqltype='cf_sql_integer');        
qresult = qget.execute(sql='
SELECT * from my_table
WHERE id = :my_integer
').getResult();
</cfscript>

第三个取决于您是通过 API 还是内部调用从应用程序使用 JSON。在 CF 管理员中使用您选择的前缀启用“前缀序列化 JSON”设置也有助于应对跨站点脚本攻击。

如果您不在 Adob​​e CF 服务器上,请不用担心。 Railo 和 Blue Dragon 都有相同的功能。

关于coldfusion - 在application.cfm中使用urlencode检测url中的XSS ColdFusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383856/

相关文章:

java - Spring @RequestMapping 对特殊字符的处理

regex - 用于在 ColdFusion 9 中删除字符串中数值周围的引号的正则表达式

sql-server - 为什么括号访问表示法有效但点不起作用?

javascript - 如何清理 JavaScript 中使用的参数?

java - php urlencode 和 java urlencode 一样吗?

javascript - 如何在 JavaScript 中对 JSON 字符串中的阿拉伯语进行编码/解码?

coldfusion - 在 Application.cfc 中设置 Session 变量

IIS 重写 - 创建 SEO 友好的 URL

php - 如何在html上显示htmlspecialchars?

jquery - 如何对 XSS 的 JSON/Ajax 响应进行编码?