我继承了一些遗留的ColdFusion代码,大约一年前,我的站点受到了XSS和SQL注入的攻击。
这会使我验证传入的输入,并在application.cfm文件中包含ScriptProtect="all“设置。我把它扫描了,结果没问题。
最近我又扫描了一遍,发现了很多漏洞,特别是在url中嵌入了一个脚本。
例如,这是附加到一个url的:
?’A<style > a(font0family:expression(alert(2424)))</style>其中嵌入了一个隐藏的JavaScript。如何在application.cfm文件中使用诸如URLencode()之类的ColdFusion函数来检测/防止此类XSS攻击?
发布于 2013-12-05 07:10:44
根据攻击的性质和应用程序的类型,您可以执行一些特定的操作。以下是我认为的“三大”。第一项是在Coldfusion管理员的“设置”区域启用“启用全局脚本保护”。
第二,对于SQL注入来说,这一点非常重要,那就是对查询中使用的任何变量使用严格的类型。例如:
<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 Administrator中使用您选择的前缀启用"Prefix Serialized JSON“设置也有助于防止跨站点脚本攻击。
如果您使用的不是Adobe CF服务器,请不要担心。Railo和Blue Dragon都有相同的功能。
https://stackoverflow.com/questions/20383856
复制相似问题