Postgresql 防止sql注入执行方式,使用nodejs实现

1.不使用字符串拼接sql,直接编写位置的sql带参数语句,例如:

select gid as objectid,name,height,houseid,ST_AsGeoJson(geom) as geometry from changqing_polygon_house where height>$1

含有like的语句,用其他关键字~* 代替 ,还有其他的关键字。。。

select gid as objectid,name,height,houseid,ST_AsGeoJson(geom) as geometry from changqing_polygon_house where height>$1 and name ~* $2

 

2.执行sql语句时,参数的值,即value采用数组的方式,批量赋值[],执行的过程中,如果出现参数数量不匹配,请检查sql里面的变量,应该是没有全部识别到,需要优化

client.query(str, value, function (err, result)

3.采用以上方式,在nodejs里面,亲测,在字符串变量中,加入 -- or  and drop等sql关键字,均作为变量赋值,而不是和整个sql进行拼接后再执行,即变量中的sql关键字只作为变量值执行,确保了安全。

你可能感兴趣的:(postgresql,postgresql)