Golang规避 SQL 注入风险

Posted code_kd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang规避 SQL 注入风险相关的知识,希望对你有一定的参考价值。

sql 您可以通过提供 SQL 参数值作为包函数参数来避免 SQL 注入风险。包中的许多函数sql为 SQL 语句和要在该语句的参数中使用的值提供参数(其他函数为准备好的语句和参数提供参数)。

以下示例中的代码使用?符号作为 id参数的占位符,该参数作为函数参数提供:

// Correct format for executing an SQL statement with parameters.
rows, err := db.Query("SELECT * FROM user WHERE id = ?", id)

sql执行数据库操作的包函数根据您提供的参数创建准备好的语句。在运行时,sql程序包将 SQL 语句转换为准备好的语句并将其与单独的参数一起发送。

注意:参数占位符因您使用的 DBMS 和驱动程序而异。例如, Postgres 的pq 驱动程序 接受占位符形式,例如$1instead of ?.

您可能想使用fmt包中的函数将 SQL 语句组装为包含参数的字符串——如下所示:

以上是关于Golang规避 SQL 注入风险的主要内容,如果未能解决你的问题,请参考以下文章

go依赖注入dig包使用-来自uber公司

golang 碎片整理之MySQL

golang依赖注入工具wire指南

GoLang如何操作mysql

golang反射框架Fx

Golang依赖注入提升开发效率!