首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在application.cfm中使用urlencode来检测url ColdFusion中的XSS

在application.cfm中使用urlencode来检测url ColdFusion中的XSS
EN

Stack Overflow用户
提问于 2013-12-05 03:11:21
回答 1查看 846关注 0票数 2

我继承了一些遗留的ColdFusion代码,大约一年前,我的站点受到了XSS和SQL注入的攻击。

这会使我验证传入的输入,并在application.cfm文件中包含ScriptProtect="all“设置。我把它扫描了,结果没问题。

最近我又扫描了一遍,发现了很多漏洞,特别是在url中嵌入了一个脚本。

例如,这是附加到一个url的:

代码语言:javascript
复制
?’A<style > a(font0family:expression(alert(2424)))</style>

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

EN

回答 1

Stack Overflow用户

发布于 2013-12-05 07:10:44

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

第二,对于SQL注入来说,这一点非常重要,那就是对查询中使用的任何变量使用严格的类型。例如:

代码语言:javascript
复制
<cfqueryparam cfsqltype="cf_sql_integer" value="#my_integer#">

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

代码语言:javascript
复制
<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 Administrator中使用您选择的前缀启用"Prefix Serialized JSON“设置也有助于防止跨站点脚本攻击。

如果您使用的不是Adobe CF服务器,请不要担心。Railo和Blue Dragon都有相同的功能。

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

https://stackoverflow.com/questions/20383856

复制
相关文章

相似问题

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