1

我有一个关于服务器端验证的问题。我在我的cffunction 中传递参数。其中一些参数是用户填充的 FROM 值,其中一些是我从数据库填充的隐藏值。隐藏值将使用表单上特定字段的当前值。所以我的问题是,如果我在我的 cffunction 和我的隐藏值中传递新值,然后比较这两者,这对我的服务器端验证是否足够?我想知道是否存在用户可以解决该验证的任何情况?或者,也许更好的选择是创建 cfquery,它将直接从服务器端的数据库中提取该记录,而不是在客户端创建隐藏字段,然后将值作为参数传递?这是我上面的问题的示例:

<select name="vehicles" id="vehicles">
   <input type="hidden" name="curVehicle" id="curVehicle" value="#oldVce.VehcileNum#" readonly>
   <option value="">Pick the vehicle</option>
   <cfloop query="myVehicles">
      <option value="#vehicleNum#">#vehicleName#</option>
   </cfloop>
</select>

服务器端:

<cffunction name="InsertUpdateVehicles" access="remote" returnformat="JSON" output="true">
   <!--- current value from drop down menu --->
   <cfargument name="newVehicle" type="string" required="yes">
   <!--- value from hidden field curVehicle ---> 
   <cfargument name="oldVehicle" type="string" required="yes">

   <cfset myResults = structNew()>

   <cfif trim(arguments.newVehicle) NEQ trim(arguments.oldVehicle)>
       <!--- Run Insert/Update --->
   </cfif>

   <cfreturn myResults>
</cffunction> 

如果有人可以提供帮助或提供示例,如果有某种方法可以解决此验证问题,请告诉我。提前致谢。

4

1 回答 1

2

如果你想要服务器端验证,#oldVce.VehcileNum#应该在你的函数中抓取并在那里检查。或者您可以使用哈希函数来加密您的隐藏字段。

于 2017-05-04T13:54:43.040 回答