gpt4 book ai didi

coldfusion - 形成数据到数据库 : preventing SQL injection

转载 作者:行者123 更新时间:2023-12-01 11:54:01 24 4
gpt4 key购买 nike

最近有人提到我们通过表单提交向SQL数据库中插入数据的方法容易受到SQL注入(inject)攻击,希望得到一些建议来加强我们的安全。

这是将表单数据插入数据库的代码:

        <cfquery name="InsRegistrant" datasource="#application.Datasource#" dbtype="odbc">

INSERT INTO Schedule_Registrations(
schedule_id,
first_name,
last_name,
phone_number,
email,
guest,
list_type,
datetime_registered
)
VALUES(
#url.schedule_id#,
'#FORM.first_name#',
'#FORM.last_name#',
'#CleanPhoneNumber#',
'#FORM.email#',
#attendee.guest#,
<!--- Values for list types
0 = NEVER USE Will cause many many problems
1 = Main List
2 = Waiting List --->
#attendee.list_type#,
#createodbcdatetime(now())#
)
</cfquery>

CleanPhoneNumber 是这样设置的:

<cfset CleanPhoneNumber = REReplace(form.phone_number, "[^0-9]", "", "ALL") />

我被告知要使用,例如,

<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.phone_number#" />

但我不确定要替换什么以及在哪里替换。当我用这样的值替换值时,出现错误。

任何方向都会有帮助..

最佳答案

您应该将所有表单和 url 变量包装在 cfqueryparam

您的查询将如下所示:

<cfquery name="InsRegistrant" datasource="#application.Datasource#" dbtype="odbc">
INSERT INTO Schedule_Registrations(
schedule_id,
first_name,
last_name,
phone_number,
email,
guest,
list_type,
datetime_registered
)
VALUES(
<cfqueryparam cfsqltype="cf_sql_integer" value="#url.schedule_id#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.first_name#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.last_name#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#CleanPhoneNumber#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.email#">,
<cfqueryparam cfsqltype="cf_sql_integer" value="#attendee.guest#">,
<!--- Values for list types
0 = NEVER USE Will cause many many problems
1 = Main List
2 = Waiting List --->
<cfqueryparam cfsqltype="cf_sql_integer" value="#attendee.list_type#">,
#createodbcdatetime(now())#
)
</cfquery>

我不确定我得到的所有数据类型是否正确,请参阅 full documentation of cfqueryparam对于所有数据类型。

关于coldfusion - 形成数据到数据库 : preventing SQL injection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com