Tengo una tabla como ...
THINGS_TABLE
============
thing_key int PRIMARY KEY
thing_num varchar(20)
thing_title varchar(20)
thing_description varchar(20)
Y algunas funciones de ColdFusion (código del lado del servidor) que se pueden agregar, editar y eliminar de esta tabla. Por ejemplo, una función createThing podría tener este aspecto en ColdFusion. Los parámetros de cfqueryparam en cfquery deben evitar la inyección de SQL , por lo que No creo que la inyección de SQL sea algo de lo que deba preocuparme.
<cffunction name="createThing" access="remote" returntype="void">
<cfargument name="thing_num" type="string" required="yes">
<cfargument name="thing_title" type="string" required="yes">
<cfargument name="thing_description" type="string" required="yes">
<!--- write to db --->
<cfquery name="createThingQuery" datasource="my_datasource">
INSERT INTO THINGS_TABLE (thing_num, thing_title, thing_description) values (
<cfqueryparam cfsqltype="cf_sql_varchar" value='#thing_num#'>,
<cfqueryparam cfsqltype="cf_sql_varchar" value='#thing_title#'>,
<cfqueryparam cfsqltype="cf_sql_varchar" value='#thing_description#'>)
</cfquery>
</cffunction>
¿Es seguro revelar los nombres reales de las columnas en las llamadas ajax que ejecutan el código del lado del servidor? Por ejemplo, una llamada ajax que podría verse así:
$.ajax({
type: "POST",
url: "thingFunctions.cfc",
data: { method : "createThing",
thing_num : "the number",
thing_title : "the title",
thing_description : "the description"
}})
Este ajax hace que sea realmente obvio cuáles son los nombres reales de las columnas en la base de datos, y es ciertamente posible que mi función ColdFusion use diferentes nombres de argumentos, pero ¿hay alguna ventaja en realidad para usar nombres diferentes? Me parece que podría hacer que el código sea más confuso para que un desarrollador lo lea, sin ofrecer ninguna ventaja desde el punto de vista de seguridad.
Además, quizás haya otros problemas con el uso de llamadas ajax como esta en las que no estoy pensando. Es decir. ¿Un usuario podría editar la página JavaScript y llamar a mi código de ColdFusion de la forma en que no fue pensado originalmente?