我有一个关于coldfusion / SQL Server共享服务器托管服务的帐户,并且已被我认为是SQL注入攻击的目标。我在每个表的几乎每个字段中都有一个javascript文件的绝对路径。似乎脚本隐藏了它所在的每个页面上的大部分文本和功能。我很幸运能够将数据库恢复到合理的位置,但我需要防止这种情况再次发生。除了<cfqueryparam></cfqueryparam>
之外还有什么我可以做的吗?
答案 0 :(得分:1)
建议的解决方案是检查所有代码,并确保不通过字符串连接构建sql语句。相反,使用参数化查询并清理用户输入。这适用于您使用的任何类型的数据库。
编辑 - 按要求提供C#示例:
string sql = "insert into table_a (cola,colb,colc) values (@value_a,@value_v,@value_c)";
using(SqlConnection conn = new SqlConnection("ConnectionString"))
{
conn.Open();
SqlCommand command = new SqlCommand(sql,conn);
command.CommandType = Commandtype.Text;
command.Parameters.AddWithValue("@value_a",txtFieldAFromForm.Text);
command.Parameters.AddWithValue("@value_b",txtFieldBFromForm.Text);
command.Parameters.AddWithValue("@value_c",txtFieldCFromForm.Text);
command.ExecuteNonQuery();
}
答案 1 :(得分:0)
结帐<cfqueryparams>
代码:http://www.adobe.com/livedocs/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=part_cfm.htm
这是如何清理用户提交的SQL查询输入。