所以我在reactjs项目中有一个axios请求:
axios.get(URL, {params: {id: id}}
这几乎可以通过如下url将get请求传递到我的后端:
URL?id=id
我还有一个node.js lambda函数,它运行如下mysql查询:
connection.query("SELECT * FROM database.USER WHERE ID = '"+event.id+"'", function (error, results, fields))
所以我知道这不起作用,因为我是通过一个url传入一个params,而这个url对事件不起作用
我试图让node.js函数从url参数读取id,但我似乎不知道这样做的语法。
有人知道如何从node.js函数中获取参数吗?我试过params.id,@id,:id,params[0].id之类的东西,但似乎都没用。
1条答案
按热度按时间uajslkp61#
首先,您要将后端暴露给sql注入。决不能将sql查询与外部的值连接起来,这些值是您无法控制的。请阅读sql注入:https://www.w3schools.com/sql/sql_injection.asp
必须使用mysql2库和准备好的语句,请参见:(https://github.com/sidorares/node-mysql2/blob/master/documentation/prepared-statements.md)
由于您使用的是aws lambda,因此从查询中读取的值使用:
const id = event.queryStringParameters ? event.queryStringParameters.id : null;